2009-06-30 53 views
8

在VB.NET中,一旦你开始输入,智能感知就会弹出,这给你一个你可以使用的完整列表。然而,在我使用的部件之后放置了一段时间之后,我的智能感知在VBA中不会启动。例如,我进入Excel 2007中的VBA编辑器并开始键入单词“Range”,但只有输入“Range.”之后,智能感知才会出现,然后它会提供我可以在此处使用的一些列表。有没有办法在Access和Excel 2007中获得完整的IntelliSense for VBA?

有没有什么办法让智能感知拿出早在VBA编辑器,让我能看到,可以像DavgDCount等使用的东西的清单?

回答

13

不,但您可以先键入Excel。在此之后放一段时间,你会发现比你想知道的Excel更多的东西。

与Access一样。键入Access和一段时间,您将在那里找到DCount

3

VBA是一个不同于.NET的野兽,所以我不确定如何更快地调出IntelliSense。我发现我有你在2003年遇到的同样的问题。

虽然我会建议检查对象浏览器。在2003年,它是在VB编辑器中的视图>对象浏览器,或F2。我觉得这是探索可用的类库的好方法。它会向您显示您当前所引用的所有内容,一旦您引用了更多库,它们也将显示在对象浏览器中。

27

只需按Ctrl + 空间随时在编辑器中。

+0

这也可以。 – 2009-06-30 21:39:03

+0

你改变了我的人生。我很高兴,同时也很郁闷。我累累地浪费了我一生中不知道这一年的事情。 – MatthewHagemann 2017-04-11 14:03:18

9

不幸的是,在Excel中,一些对象被声明为“As Object”,而Object没有任何方法,所以Intellisense将无法显示任何对象。主要罪魁祸首是Excel.ActiveSheet。

如果您知道实际的类型,那么您可以显式声明它并将其分配给所需的值。 EG:

Dim mySheet As Worksheet 
Set mySheet = ActiveSheet  'This line would cause a type mismatch error if mySheet was declared as something other than a WorkSheet 
mysheet.[All The Intellisense For a Worksheet Pops Up] 
相关问题