创建多个Symbol后遇Automation Error,窗体实例未释放问题求助
解决方向
修正窗体实例的声明与创建方式
不要使用Dim obfrmGetSymbolName As New frmGetSymbolName这种自动实例化的写法,这种方式会在每次引用变量时自动创建新实例,极易导致多个孤立实例残留。改为手动声明并创建:Dim obfrmGetSymbolName As frmGetSymbolName Set obfrmGetSymbolName = New frmGetSymbolName使用模态方式显示窗体
将obfrmGetSymbolName.Show改为obfrmGetSymbolName.Show vbModal,模态窗体会阻塞后续代码执行,直到窗体关闭,能确保你在获取SymbolName时,窗体已经完成交互,避免实例状态混乱。手动销毁窗体实例
在不再需要窗体时,必须手动卸载并释放引用,这样才能触发Class_Terminate事件,彻底清理内存中的实例。在循环结束后添加:Unload obfrmGetSymbolName Set obfrmGetSymbolName = Nothing检查窗体内部的关闭逻辑
确保窗体的关闭操作(比如点击关闭按钮)执行的是Unload Me,而不是Me.Hide。Hide只是隐藏窗体,实例仍然驻留在内存中,只有Unload才会销毁窗体对象。
内容的提问来源于stack exchange,提问作者bigt95nt0110
相关产品推荐
相关产品推荐

