1

我的问题如下:

我打开一个 Excel - 文件,但我不知道我的客户在模板文件中使用了哪些可能的标头变量。这些可以是:#DATE、#TIME、#NAME 等等。所以我需要寻找这些变量,如果已经使用:替换它们。

vCell = findCell("DATE");
tempStr = DateToStr(Date()) ;   // Date
if (vCell.VType != VT_EMPTY )
    vWorksheet.OlePropertyGet("Cells", vCell.OlePropertyGet("Address")).OlePropertySet("Value",StringToOleStr(tempStr));

findCell 看起来像这样:

Variant __fastcall TClassExcel::findCell(AnsiString Cell,String Range){
    // Range is set to A1:Z100 as default in the header file 
    vRange = vWorksheet.OlePropertyGet("Range",StringToOleStr(Range));
    return vRange.OleFunction("Find", StringToOleStr("#"+Cell));
}

该行if (vCell.VType != VT_EMPTY)不检测标题内是否没有这样的单元格。我也尝试过vCell.Empty(),但没有成功。Vtype= 9 如果我看值。所以,我正在寻找VBA对应的“ If Not cell Is Nothing Then ”

此参考是查找方法的 MSDN 库:MSDN Find Method以确保不要尝试将某些变量写入不存在的单元格。

4

0 回答 0