【发布时间】:2011-06-18 05:11:12
【问题描述】:
我正在调试的 delphi 5 程序中有这段代码:
s:string
vararray:variant;
vararray := VarArrayOf(['']);
vararray := ExcelWorkSheet1.UsedRange[0].Value;
s := VarToStr(vararray);
这用于在 Excel XP 和 2003 运行时完美运行。但是自从我更改为 Excel 2007(也是 windows7)后,delphi 在最后一行给出了一个变体类型转换错误('无效的变体类型转换')。
有人可以帮我解决这个问题吗?在过去的 5 年里,这段代码没有被触及过,我无法找到记录这些组件的好来源
谢谢!
【问题讨论】:
-
这个单元格包含什么?我敢打赌,这是一个以字符串形式保存的日期/时间。
-
我问这个问题是因为不知道这个单元格包含什么,很难回答
-
ISTM 在最后一行中,vararray 正在填充一系列单元格中的值,并且 Excel 2003 和 2007 传递值数组的方式有所不同。 . 使用调试器进行操作,在使用 Excel 2003 和 2007 调用 VarTOStr 之前检查 vararray 中的内容。这应该为为什么会发生转换错误提供线索。也可能与参数分隔符的区域设置以及 2003/2007 年间他们使用的行为变化(从他们选择要使用的分隔符的位置)有关。
-
Office COM 服务器的文档位于 Office 目录树中
-
你能用一个小的 Excel 样本表和一个小的 Delphi 程序重现这个吗?然后转储 vararray 变量的内容。
标签: delphi excel automation