我正在尝试一个应该打开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
答案 0 :(得分:1)
我建议删除关闭,即
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
答案 1 :(得分:-1)
我打算在这里走出困境并打赌Excel 关闭。
你只是不等待完整的20秒你告诉Excel等待。也许你打算暂停2秒(2000 ms
)。
我不确定计时器是否正在为另一个putpose服务,但删除该行并再试一次,你会发现你的窗口按预期关闭。
故障排除的第一步是将代码分成更小的部分,逐一取出部件,直到明确哪个命令或部分是罪魁祸首。
从传奇 Chip Pearson 中调试VBA located here有一些很好的建议。