我已经在在线教程中看到Intellisense发挥了神奇的作用:当您键入对象名称时,它会自动为您完成。为什么我的VBE没有?它适用于属性和方法,不适用于对象。
我正在使用Office 2010,也许该功能在早期版本中不可用?
答案 0 :(得分:0)
Intellisense功能有两个要求:
可编译代码-选择菜单选项Dim sht1, sht2 As Variant, sht3 As Object
进行编译。如果项目不可编译,则Intellisense可能会在何时何地展示自己的内容上造成困惑。
强类型变量-必须强类型化变量和对象模型成员,才能使Intellisense正常工作。
这些变量都不是强类型的,因此它们都不具有Intellisense:
Dim sht1 As Worksheet
而Excel.ThisWorkbook.Worksheets(1)
将获得Intellisense
某些对象模型成员,例如Variant
返回Worksheets
(因为Worksheet
方法可以返回单个Worksheets
或{{1}的数组}。为了获得Intellisense,您需要显式声明一个强类型变量,然后使用该变量:
'Explicitly declare a strongly typed variable
Dim sht1 As Worksheet
'Cast the Variant result to a Worksheet
Set sht1 = Excel.ThisWorkbook.Worksheets(1)
With sht1
'Type a period to invoke Intellisense for the Worksheet object
Debug.Print .Name
End With
如果您正在使用返回在另一个库中定义的类型的成员,例如Excel.Application.VBE
,则需要添加对该库的引用(在本示例中为VBIDE
)在声明合适的强类型成员之前。
答案 1 :(得分:0)
要在VBE中强制执行Intellisense功能,只需按Ctrl + Space。