是否有一种方法可以使Excel实例保持打开状态,即使在所有工作簿都已关闭之后?
条件:目前,我有两个单独的Excel实例-是否有一种方法可以使Excel实例保持打开状态,即使在所有工作簿都已关闭之后?,excel,vba,Excel,Vba,条件:目前,我有两个单独的Excel实例-xlApp和xlApp2 xlApp是我的个人工作簿所在的Excel实例 打开 xlApp2是通过VBA代码创建的新Excel实例 在我的工作簿中放置其他工作簿 问题:如果我在xlApp中关闭我的个人工作簿,并打开一个新工作簿,它将被添加到我正在寻找的xlApp;但是,如果我按“X”键关闭xlApp,或在任务管理器中结束任务,则我打开的任何新工作簿都将添加到xlApp2,这不是我要查找的 目标:程序应保持xlApp实例处于打开状态,或者在关闭时创建一
xlApp
和xlApp2
是我的个人工作簿所在的Excel实例 打开xlApp
是通过VBA代码创建的新Excel实例 在我的工作簿中放置其他工作簿xlApp2
xlApp
中关闭我的个人工作簿,并打开一个新工作簿,它将被添加到我正在寻找的xlApp
;但是,如果我按“X”键关闭xlApp
,或在任务管理器中结束任务,则我打开的任何新工作簿都将添加到xlApp2
,这不是我要查找的
目标:程序应保持xlApp
实例处于打开状态,或者在关闭时创建一个新实例,以便将新工作簿添加到该实例中,而不是添加到xlApp2
。这在VBA中可能吗
Public Sub keepExcelInstance()
Dim xlApp as Excel.Application
Dim xlApp2 as Excel.Application
Set xlApp = GetObject(, "Excel.Application") 'Get the current instance of Excel.
Set xlApp2 = New Excel.Application 'Create a separate instance of Excel.
End Sub
我认为用它来创作可能值得一试。另外,
Set xlApp=Application
获取当前实例,但是为什么要复制一个已经是全局的对象引用呢?如果全局Application
对象在任何地方都被称为Application
,那么代码就更容易理解;-)@MathieuGuindon有趣的是,我必须尝试一下并探索Shell。注意,您需要GetObject
来检索生成的实例-有一些gotchas,但是您可以在这个站点上找到它们=)