在Excel 2010 VBA编辑器中自动完成

我是VBA新手。 在Excel 2010的编辑器中,按CTRL +空格可以自动完成。

但有时,它不起作用。例如,当我input“ActiveSheet”。 我无法检查对象可能的方法和variables。

但是当我input:

Set sheet = Workbooks.Open(file, True, True) sheet. 

并按CTRL +空格,我可以看到所有的可能性..

谢谢你的帮助!

VBA仅在数据types不存在歧义时为您提供属性和方法。 ActiveSheet可以是一个工作表对象,macros表,也可能是其他一些我不记得的东西。

如果你进入对象浏览器(F2)并查找ActiveSheet或者Sheets类的Item属性,你会看到它们返回一个Object数据types。 对象是一个通用的数据types,可以容纳任何对象(类似Variant)。 因为VBA不知道Object的背后是什么对象,所以不能给你一个属性和方法的列表。

您没有通过使用Set sheet = ...来获取该列表,因为之前在您的代码中将sheet声明为Worksheet(可能)。 虽然Sheet.Item(和Activesheet)返回一个对象,当您将某些内容声明为Worksheet时,不会有歧义。