我是 VBA 新手。在 Excel 2010 的编辑器中,可以通过按 CTRL + Space 来自动完成。
但有时,它不起作用.. 例如,当我输入“ActiveSheet”时。我无法检查对象可能具有的方法和变量。
但是当我输入时:
Set sheet = Workbooks.Open(file, True, True)
sheet.
Run Code Online (Sandbox Code Playgroud)
并按 CTRL+Space 我可以看到所有可能性..
谢谢你的帮助!
VBA 仅在数据类型没有歧义时才为您提供属性和方法。ActiveSheet 可以是一个 Worksheet 对象、Macrosheet,可能还有一些我不记得的东西。
如果您转到对象浏览器 (F2) 并查找 ActiveSheet 或 Sheets 类的 Item 属性,您将看到它们返回对象数据类型。Object 是一种通用数据类型,可以容纳任何对象(有点像 Variant)。因为 VBA 不知道 Object 后面是什么对象,所以它不能给你一个属性和方法的列表。
您不会通过使用获得该列表Set sheet = ...,而是因为之前在您的代码中声明sheet为 Worksheet (可能)而获得它。虽然 Sheet.Item(和 Activesheet)返回一个对象,但当您将某些内容声明为 Worksheet 时没有歧义。