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

时间:2014-12-17 15:01:38

标签: excel vba excel-vba

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

但有时,它不起作用。例如,当我输入" ActiveSheet。"我无法检查对象可能存在的方法和变量。

但是当我输入时:

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

并点击CTRL + Space我可以看到所有可能性..

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

当数据类型中没有歧义时,VBA仅为您提供属性和方法。 ActiveSheet可以是Worksheet对象,Macrosheet,也可能是其他一些我不记得的东西。

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

您没有使用Set sheet = ...获取该列表,因为您之前在代码中将sheet声明为工作表(可能)。当Sheet.Item(和Activesheet)返回一个Object时,在将某些东西声明为Worksheet时没有歧义。