创建一个运行以下代码的窗体。

MsgBox (VBE.ActiveCodePane.CodeModule)

并出现此消息。

vba - 为什么 VBE.ActiveCodePane.CodeModule 在 VBE(代码窗口)未打开时不起作用?-LMLPHP

现在保存、关闭并重新打开数据库,并看到以下消息:

运行时错误“91”:未设置对象变量或块变量

vba - 为什么 VBE.ActiveCodePane.CodeModule 在 VBE(代码窗口)未打开时不起作用?-LMLPHP

如果您打开 Visual Basic 编辑器,它会再次运行。即使您关闭 VBE,它仍会运行。

但是当您关闭整个应用程序并重新打开它时,让 VBE 关闭,您会收到错误消息。

为什么?这里发生了什么?

最佳答案

您引用事件 Pane 对象。在 Pane 被激活之前不会设置对象。所以在你打开 VBE 之前,对象还没有设置。关闭 VBE 后,对象仍然存在,因此您仍然可以引用它。

要在不打开 VBE 的情况下获取 ActiveCodepane 对象的句柄,可以激活 VBComponent,如下所示:

VBE.ActiveVBProject.VBComponents("Module1").Activate

您可以像这样激活任何 VBComponent。

关于vba - 为什么 VBE.ActiveCodePane.CodeModule 在 VBE(代码窗口)未打开时不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32748946/

10-10 19:01