VBE 中的智能感知对对象未完全运行



我在在线教程中看到智能感知发挥了魔力:当您键入对象名称时,它会自动为您完成它。为什么我的 VBE 没有?它适用于属性和方法,但不适用于对象。

我使用的是 Office 2010,也许该功能在早期版本中不可用?

智能感知功能有两个要求:

  1. 可编译代码- 选择要编译Debug..Compile VBA Project菜单选项。如果项目不可编译,智能感知可能会对何时何地呈现自己感到困惑。

  2. 强类型变量- 变量和对象模型成员必须为强类型才能使智能感知正常工作。

    • 这些变量都不是强类型变量,因此它们都没有智能感知:

      Dim sht1, sht2 As Variant, sht3 As Object

      然而,Dim sht1 As Worksheet将获得智能感知

    • 某些对象模型成员(如Excel.ThisWorkbook.Worksheets(1)(返回Variant(因为Worksheets方法可以返回单个WorksheetWorksheets数组(。若要获取智能感知,需要显式声明一个强类型变量,然后使用该变量:

      '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(,然后才能声明适当的强类型成员。

要在 VBE 中强制使用智能感知功能,只需按 Ctrl+空格键。

最新更新