2013-03-18 131 views
4

我从Office 2000将一些旧的代码到Office 2010,并遇到了一个问题,与越来越Excel来自动调整列Excel列自动调整德尔福XE2

这是工作的代码如下:

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]高亮显示。代码完成不提供任何方式,我可以看到选择一个单独的列,无论是作为一个整数或范围。

有什么建议吗?

回答

6

您拥有的代码将用于延迟绑定COM。但是你声明你正在使用早期绑定的COM。

对于早期绑定COM你需要使用这样的事情:

ExcelApp.Range['A1','A1'].EntireColumn.AutoFit; 

我无法解释的代码在过去是如何工作的。也许从Excel类型库创建的导入单元在某种微妙的方面有所不同。

+0

当你看看XLApp.Columns自动完成描述它作为一个范围 - 也许这就是为什么以前工作... – 2013-03-18 11:04:04