VBE中的Intellisense无法完全针对对象运行

时间:2018-08-11 10:02:37

标签: intellisense vbe

我已经在在线教程中看到Intellisense发挥了神奇的作用:当您键入对象名称时,它会自动为您完成。为什么我的VBE没有?它适用于属性和方法,不适用于对象。

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

2 个答案:

答案 0 :(得分:0)

Intellisense功能有两个要求:

  1. 可编译代码-选择菜单选项Dim sht1, sht2 As Variant, sht3 As Object进行编译。如果项目不可编译,则Intellisense可能会在何时何地展示自己的内容上造成困惑。

  2. 强类型变量-必须强类型化变量和对象模型成员,才能使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。