自动完成/下拉框的参数超过第一个句号

Joh*_*ame 1 excel vba

例如,如果我在 Excel 托管的 VBA 中编写参数

ActiveSheet.UsedRange.Select
Run Code Online (Sandbox Code Playgroud)

第一部分写到一半时 -- ActiveSheet-- CTRL+SPACE将自动完成该部分,或者我可以从下拉列表中选择可用选项。

但是 - Intellisense 下拉框和自动完成在第一次句号后将不起作用/出现任何内容。例如,我无法自动完成该UsedRange属性。

在写完第一部分之后,是否可以让建议出现等?

Zev*_*itz 7

如果您ActiveSheet在对象浏览器中查看(按 F2),您会看到它ActiveSheet被输入为Object. 因此,Intellisense 无法显示特定于Worksheet. 输入是Object有意义的,因为活动工作表可能不是标准 Excel 工作表——例如图表工作表或对话框工作表。

许多全局属性是强类型的,例如ActiveWorkbookas Workbook; Intellisense 将很好地呈现属性和方法。

在此处输入图片说明

如果您确定ActiveSheet在此代码中使用时将始终引用 a Worksheet,则可以将其分配给一个Worksheet变量:

Dim wks As Worksheet
Set wks = ActiveSheet
Run Code Online (Sandbox Code Playgroud)

然后,Intellisense 将为您Worksheet提供强类型变量的对象的适当属性和方法:

在此处输入图片说明

(理论上,Excel 对象模型的类型可能ActiveSheet类似于Sheet,其中包含Worksheet,Chart和 的所有公共成员DialogSheet。我不确定为什么没有这样做。)