首页 > 解决方案 > 超过第一个句号的参数的自动完成/下拉框

问题描述

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

ActiveSheet.UsedRange.Select

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

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

是否有可能在写第一部分之后提出建议等?

标签: excelvba

解决方案


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

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

在此处输入图像描述

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

Dim wks As Worksheet
Set wks = ActiveSheet

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

在此处输入图像描述

(理论上,Excel 对象模型的类型可能ActiveSheet类似于,它具有和Sheet的所有常见成员。我不知道为什么不这样做。)WorksheetChartDialogSheet


推荐阅读