在Excel模板中使用OleFunction“find”查找标题variables,并从C ++中replace它们

我的问题是以下几点:

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

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查找方法以确保不尝试将一些variables写入不存在的单元格。

你试过了: if (vCell != "")还是if (vCell.strVal != "")

在某些情况下,表面上空的单元格返回一个空string,因此被检测为非空。

(PS我没有经验的C ++到Excel OLE接口,所以使用任何成员variables/ vCell函数返回其string值)