Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种方法可以使Excel实例保持打开状态,即使在所有工作簿都已关闭之后?_Excel_Vba - Fatal编程技术网

是否有一种方法可以使Excel实例保持打开状态,即使在所有工作簿都已关闭之后?

是否有一种方法可以使Excel实例保持打开状态,即使在所有工作簿都已关闭之后?,excel,vba,Excel,Vba,条件:目前,我有两个单独的Excel实例-xlApp和xlApp2 xlApp是我的个人工作簿所在的Excel实例 打开 xlApp2是通过VBA代码创建的新Excel实例 在我的工作簿中放置其他工作簿 问题:如果我在xlApp中关闭我的个人工作簿,并打开一个新工作簿,它将被添加到我正在寻找的xlApp;但是,如果我按“X”键关闭xlApp,或在任务管理器中结束任务,则我打开的任何新工作簿都将添加到xlApp2,这不是我要查找的 目标:程序应保持xlApp实例处于打开状态,或者在关闭时创建一

条件:目前,我有两个单独的Excel实例-
xlApp
xlApp2

  • xlApp
    是我的个人工作簿所在的Excel实例 打开
  • xlApp2
    是通过VBA代码创建的新Excel实例 在我的工作簿中放置其他工作簿
问题:如果我在
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,但是您可以在这个站点上找到它们=)