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

Excel 2010 VBA编辑器中的自动完成,vba,excel,Vba,Excel,我是VBA新手。在Excel 2010的编辑器中,按CTRL+Space可以自动完成 但有时,它不起作用。。例如,当我键入“ActiveSheet”时,我无法检查对象可能具有的方法和变量 但当我输入时: Set sheet = Workbooks.Open(file, True, True) sheet. 点击CTRL+Space,我可以看到所有的可能性 谢谢你的帮助 VBA仅在数据类型没有歧义时提供属性和方法。ActiveSheet可以是一个工作表对象、宏表,可能还有一些我不记得的东西 如果

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

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

但当我输入时:

Set sheet = Workbooks.Open(file, True, True)
sheet.
点击CTRL+Space,我可以看到所有的可能性


谢谢你的帮助

VBA仅在数据类型没有歧义时提供属性和方法。ActiveSheet可以是一个工作表对象、宏表,可能还有一些我不记得的东西

如果转到对象浏览器(F2)并查找ActiveSheet或Sheets类的Item属性,您将看到它们返回对象数据类型。对象是一种通用数据类型,可以保存任何对象(类似于变体)。因为VBA不知道对象后面是什么对象,所以它不能提供属性和方法的列表


通过使用
Set sheet=…
,您不会得到该列表,您之所以得到它,是因为之前在代码中将
sheet
声明为工作表(可能)。虽然Sheet.Item(和Activesheet)返回一个对象,但当您将某个对象声明为工作表时,不会出现歧义。

请尝试寻找正确的答案,我说的对吗,因为计算机不知道Activesheet真正是哪种类型的?这是否回答了您的问题?RE VBA仅在数据类型没有歧义时提供属性和方法。-
ActiveSheet
属性对其数据类型没有歧义;它的数据类型是明确的
对象