Vbscript 关闭打开的Excel实例

Vbscript 关闭打开的Excel实例,vbscript,excel.application,Vbscript,Excel.application,有人能告诉我以下简单的VBScript是否正确吗? 它应该在其他进程运行(并保持Excel打开)后关闭Excel,但它不起作用 Set MyApp = CreateObject("Excel.Application") MyApp.Quit 请试试这个 ThisWorkbook.Saved = True Application.Quit 请试试这个 ThisWorkbook.Saved = True Application.Quit 创建一个COM对象,因此 Set MyApp = Cre

有人能告诉我以下简单的VBScript是否正确吗? 它应该在其他进程运行(并保持Excel打开)后关闭Excel,但它不起作用

Set MyApp = CreateObject("Excel.Application")
MyApp.Quit
请试试这个

ThisWorkbook.Saved = True
Application.Quit
请试试这个

ThisWorkbook.Saved = True
Application.Quit
创建一个COM对象,因此

Set MyApp = CreateObject("Excel.Application") 
启动新的Excel进程。用于“检索具有指定ProgID的现有对象”。有关理论和实践,请参见。

创建一个COM对象,因此

Set MyApp = CreateObject("Excel.Application") 

启动新的Excel进程。用于“检索具有指定ProgID的现有对象”。有关理论和实践,请参见。

CreateObject
创建新对象。如果我正确理解您的问题,您希望附加到已经运行(孤立)的Excel进程以终止它们。您可以使用
GetObject

On Error Resume Next
Do
  Set xl = GetObject(, "Excel.Application")
  status = Err.Number
  If status = 0 Then
    For Each wb in xl.Workbooks
      wb.Close False  'discard changes in open workbooks
    Next
    xl.Quit
  ElseIf status <> 429 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit 1
  End If
Until status = 429
On Error Goto 0

CreateObject
创建一个新对象。如果我正确理解您的问题,您希望附加到已经运行(孤立)的Excel进程以终止它们。您可以使用
GetObject

On Error Resume Next
Do
  Set xl = GetObject(, "Excel.Application")
  status = Err.Number
  If status = 0 Then
    For Each wb in xl.Workbooks
      wb.Close False  'discard changes in open workbooks
    Next
    xl.Quit
  ElseIf status <> 429 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit 1
  End If
Until status = 429
On Error Goto 0

不起作用?您是否收到错误或它没有按预期运行?只是没有做任何事情。。。。没有显示错误。所以您双击了
.VBS
文件?出于故障排除的目的,我通常将以下代码放在外部:
MsgBox“Start”
然后
MsgBox“Complete”
,这至少告诉我脚本已运行。如果在设置
Myapp
之后还添加
MsgBox Myapp.Name
,它也会告诉您一些事情。但真正的问题是,您使用的是
CreateObject
,它只是实例化一个新的excel。添加此页面的底部,您将发现一些代码的示例,这些代码在每个进程中进行迭代并显示出来。您应该能够修改脚本以仅查找Excel进程,并添加更多代码以获取和关闭它们(或杀死它们)。但是,您应该真正找到留下孤立excel进程的错误代码,并修复它,感谢您的回复。我有一个运行VBScript的批处理文件,但它在关闭该文件后不会关闭Excel。不工作?您是否收到错误或它没有按预期运行?只是没有做任何事情。。。。没有显示错误。所以您双击了
.VBS
文件?出于故障排除的目的,我通常将以下代码放在外部:
MsgBox“Start”
然后
MsgBox“Complete”
,这至少告诉我脚本已运行。如果在设置
Myapp
之后还添加
MsgBox Myapp.Name
,它也会告诉您一些事情。但真正的问题是,您使用的是
CreateObject
,它只是实例化一个新的excel。添加此页面的底部,您将发现一些代码的示例,这些代码在每个进程中进行迭代并显示出来。您应该能够修改脚本以仅查找Excel进程,并添加更多代码以获取和关闭它们(或杀死它们)。但是,您应该真正找到留下孤立excel进程的错误代码,并修复它,感谢您的回复。我有一个运行VBScript的批处理文件,但它在关闭该文件后不会关闭Excel。