delphi5与自动化和Excel 2007运行Excel阅读

在我正在debugging的delphi 5程序中有这段代码:

s:string vararray:variant; vararray := VarArrayOf(['']); vararray := ExcelWorkSheet1.UsedRange[0].Value; s := VarToStr(vararray); 

当Excel XP和2003运行时,这用于完美的工作。 但自从我更改为Excel 2007(也是Windows7)之后,delphi在最后一行('无效的变体types转换')中给出了变体types转换错误。

有人能帮我解决这个问题吗? 这个代码在过去的5年中还没有被触及,我无法find一个很好的来源来logging这些组件

谢谢!

我设法得到以下工作:

 Sheet := Workbook.Sheets.Item[1] as ExcelWorksheet; value := Sheet.Range['A1','B1'].Value; Edit1.Text := value[1,1]; Edit2.Text := value[1,2]; 

请注意,我通过Excel2000导入单元使用早期绑定。 我想你可能是使用CreateComObject('Excel.Application')后期绑定。

我不明白你的Range[1,2]语法 – 这似乎不符合Excel对象模型的要求。

我希望这有帮助。

UsedRange不需要激活。 如果不是.value将是空的,不能被转换成一个string。

做额外的检查,如下所示:

 s:string vararray:variant; vararray := VarArrayOf(['']); vararray := ExcelWorkSheet1.UsedRange[0].Value; if vararray <> nul then s := VarToStr(vararray); else s := '';