例如,如果我在 Excel 托管的 VBA 中编写参数
ActiveSheet.UsedRange.Select
Run Code Online (Sandbox Code Playgroud)
第一部分写到一半时 -- ActiveSheet-- CTRL+SPACE将自动完成该部分,或者我可以从下拉列表中选择可用选项。
但是 - Intellisense 下拉框和自动完成在第一次句号后将不起作用/出现任何内容。例如,我无法自动完成该UsedRange属性。
在写完第一部分之后,是否可以让建议出现等?
如果您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。我不确定为什么没有这样做。)