EXcel VBA对象被破坏

时间:2014-02-17 01:14:35

标签: excel vba object

嗨,我是Excel VBA的新手,所以这可能很明显,如果有的话,我道歉。

我在Workbook_Open()中实例化了许多全局对象(类),并试图为这些类编写包装函数,以便在各种工作表中调用UDF。如果这些函数中的任何一个因未捕获的错误而失败,则所有这些全局对象都将设置为空。

为什么会发生这种情况,因为我认为可能只有我操作的全局对象才会受到影响而不是所有这些对象,除了关闭工作簿并重新打开以重新建立它们以进行进一步调试之外还有其他解决方案吗? ?

实例化只是

Private Sub Workbook_Open()
   Dim i as Integer
   For i = 0 to nStreams
       Set gStream(i) = New CStream
   Next i
End Sub

1 个答案:

答案 0 :(得分:1)

您可以从Workbook_Open事件中删除“set globals”代码:

Private Sub Workbook_Open()
   SetGlobals
End Sub

'in a regular module
Public Sub SetGlobals()
   Dim i as Integer
   For i = 0 to nStreams
       Set gStream(i) = New CStream
   Next i
End sub