嗨,我是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
答案 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