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

mrb*_*ela 3 excel vba

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

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

但是当我输入时:

Set sheet = Workbooks.Open(file, True, True)
sheet.
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助!

Dic*_*ika 5

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

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

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