有没有办法在Access和Excel 2007中获得VBA的完整IntelliSense?

Bry*_*yan 8 intellisense vba

在VB.NET中,一旦开始输入,IntelliSense就会弹出,这会为您提供当时可以使用的完整列表.但是,在您使用的部件之后放置一段时间后,VBA中的IntelliSense 不会启动.例如,我进入Excel 2007中的VBA编辑器并开始输入单词" Range"但是在我键入" Range." 之前智能感知不会出现,之后它会给我一个我可以在那时使用的列表.

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

GSe*_*erg 28

只需在编辑器中随时按Ctrl+即可Space.


Rob*_*vey 14

不,但你可以Excel先输入.放一段时间后,你会发现比你想知道更多的Excel.

与Access相同.键入Access和期间,你会发现DCount那里.


小智 8

遗憾的是,在Excel中,某些对象被声明为"As Object",而Object没有任何方法,因此Intellisense将无法显示任何对象.主要罪魁祸首是Excel.ActiveSheet.

如果您知道该类型实际是什么,那么您可以显式声明它并将其分配给您想要的值.例如:

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]
Run Code Online (Sandbox Code Playgroud)

  • `ActiveSheet`也可以是`Chart`:在这种情况下,如果`mySheet`被声明为Worksheet,你会得到一个类型不匹配.这就是为什么ActiveSheet是"对象"类型的原因:它并不总是一个工作表...... (2认同)