我有一个隐藏的 Excel 实例,当它是唯一运行的 Excel 实例时,我试图通过用户双击工作簿来隐藏它。我目前的解决方案是捕获隐藏实例的任何事件Application_WorkbookOpen()
,Application_WorkbookNew()
当它们发生时,大致执行以下操作:
Dim strWbOpenedName as String, xlNew as New Excel.Application
strWbOpenedName = Wb.path & "\" Wb.name
Wb.Close False
xlNew.Visible = True
xlNew.Workbooks.Open strWbOpenedName
Set xlNew = Nothing
然而,尽管变得可见,并且是打开工作簿的最后一个 Excel 实例,xlNew 不会收到后续的 Application_WorkbookOpen 事件 - 这些仍然会转到原始隐藏实例。有谁知道我如何将“主要”excel实例重定向为我新创建的实例?
我有一个可怕的怀疑,我需要开始使用正在运行的对象表(取决于 Windows 如何选择 Excel 的实例作为发送打开的工作簿的实例),但对正确的操作知之甚少管理它(例如,如果这是它决定使用哪个实例的方式,我是否可以将已注册 Excel 实例的 hWnd 切换为 xlNew 可用的 hWnd 而不会导致系统崩溃?)