我是VBA的新人。在Excel 2010的编辑器中,按CTRL + Space可以自动完成。
但有时,它不起作用。例如,当我输入" ActiveSheet。"我无法检查对象可能存在的方法和变量。
但是当我输入时:
Set sheet = Workbooks.Open(file, True, True)
sheet.
并点击CTRL + Space我可以看到所有可能性..
感谢您的帮助!
答案 0 :(得分:3)
当数据类型中没有歧义时,VBA仅为您提供属性和方法。 ActiveSheet可以是Worksheet对象,Macrosheet,也可能是其他一些我不记得的东西。
如果您转到对象浏览器(F2)并查找ActiveSheet或Sheets类的Item属性,您将看到它们返回Object数据类型。 Object是一种通用数据类型,可以容纳任何对象(类似于Variant)。因为VBA不知道Object后面有什么对象,所以它不能给你一个属性和方法列表。
您没有使用Set sheet = ...
获取该列表,因为您之前在代码中将sheet
声明为工作表(可能)。当Sheet.Item(和Activesheet)返回一个Object时,在将某些东西声明为Worksheet时没有歧义。