【问题标题】:objExcel.Quit doesn't work for quitting ExcelobjExcel.Quit 不适用于退出 Excel
【发布时间】:2018-10-15 15:17:09
【问题描述】:

我正在尝试应该打开 Excel、打开工作簿、运行宏然后关闭所有内容的 VBScript。

Dim objExcel, xlBook

Set objExcel = CreateObject("Excel.Application")
Set xlBook = objExcel.Workbooks.Open ("path to the xlsm file")

objExcel.Visible = True

objExcel.Run xlBook.name & "!Modulo1.Macro1"
WScript.Sleep 20000

objExcel.Quit

一切正常,Excel 打开 .xlsm 文件并运行宏,但在关闭工作簿(包含在宏中)后,Excel 仍保持打开状态。

objExcel.Quit 似乎无法正常工作。

我在 Windows 7 中使用 Excel 2016。

这些是宏的最后几行:

    Application.DisplayAlerts = False

    ChDir "C:\Users\" & UserName & "\Google Drive\Shopify"
    ActiveWorkbook.SaveAs Filename:= "C:\Users\" & UserName & _
        "\Google Drive\Shopify\Shopify.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    Workbooks("Shopify.xlsx").Close
End Sub

【问题讨论】:

  • 请贴出VBA宏代码。什么是安装的 Excel 版本和位数?检查MCVE
  • 您是在说关闭第一个 Excel,即包含宏的那个?
  • 我说的是关闭 Excel 应用程序(工作簿已经被宏关闭)
  • 尝试将 Application.DisplayAlerts = False 的值更改为 True - Excel 可能会弹出一条消息以保存您的更改或显示错误对话框

标签: vba excel vbscript


【解决方案1】:

我将在这里冒险并打赌 Excel 正在关闭。

您只是没有等待您告诉 Excel 等待的 整整 20 秒。也许您打算暂停 2 秒 (2000 ms)。

我不确定计时器是否有其他用途,但请删除该行并重试。您会注意到您的窗口按预期关闭。


故障排除的第一步是将代码分解成更小的部分,逐个取出部分,直到明确哪个命令或部分是罪魁祸首。

传奇 Chip Pearson提供了一些关于调试 VBA located here 的极好的建议。

【讨论】:

  • 不,我已经等了......我也试过删除那一行 Excel 保持打开状态
  • 我等着它关闭得很好。但是我做的另一件事是删除调用宏的行,因为我没有宏。
【解决方案2】:

我建议删除关闭,即

Application.DisplayAlerts = False

ChDir "C:\Users\" & UserName & "\Google Drive\Shopify"
ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\" & UserName & "\Google Drive\Shopify\Shopify.xlsx", FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False
' As you are doing a saveas the workbook Shopify.xlsx becomes the active one
' Closing it the vb script menas you lose the connection you opened via
' objExcel.Run xlBook.name & "!Modulo1.Macro1"
'Workbooks("Shopify.xlsx").Close

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多