我正在将一些较旧的代码从 Office 2000 移至 Office 2010,但在让 Excel 自动调整列时遇到了问题
正在运行的代码如下:
for x := 1 to LV.Columns.Count do
XLApp.Columns[x].EntireColumn.AutoFit;
其中 XLApp 是 TExcelApplication 组件
当我查看 VBA 时,等效代码应该是
Columns("A:A").EntireColumn.AutoFit
对我来说,更改代码以使范围与 VBA 匹配很容易,但这似乎不是问题。编译器返回的错误是
Class does not have a default property
并且[x]
突出显示。代码完成不提供任何我可以看到的选择单个列的方法,无论是作为整数还是范围。
有什么建议吗?
最佳答案
您拥有的代码将适用于后期绑定(bind) COM。但您声明您正在使用早期绑定(bind)的 COM。
对于早期绑定(bind)的 COM,您需要使用如下内容:
ExcelApp.Range['A1','A1'].EntireColumn.AutoFit;
我无法解释代码过去是如何工作的。也许从 Excel 类型库创建的导入单元有一些微妙的不同。
关于Delphi XE2 中的 Excel 列自动调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15474776/