【问题标题】:Error when use vbs file to run Excel Macro使用 vbs 文件运行 Excel 宏时出错
【发布时间】:2017-05-19 13:00:29
【问题描述】:

我正在尝试使用以下 vbs 在 test.xlsm 文件中运行宏。但是,当我运行它时,它会抛出一个错误,表明第 9 行有错误:此类不支持自动化“objWorkbook.Close”。

我在网上查过解决办法,比如把objWorkbook.Close False改成objWorkbook.Close(False);然而,改变 Excel 的兼容性,这些都不起作用。

打开的 Excel 好像无法关闭...

知道如何解决吗? 如果能修好真的不胜感激!

Dim args, objExcel

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = 
objExcel.Workbooks.Open("C:\Users\Daisy\Desktop\VBA\test.xlsm")
objExcel.DisplayAlerts = False
objExcel.workbooks.Open "C:\Users\Daisy\Desktop\VBA\test.xlsm", 0, True
objExcel.visible = True
objExcel.Run "test.xlsm!ScheduleARunForTomorow" 
objWorkbook.Close False
objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit

【问题讨论】:

  • 为什么要打开同一个工作簿两次?
  • 我删除了objExcel.workbooks.Open "C:\Users\Daisy\Desktop\VBA\test.xlsm", 0, True这一行,用宏创建了test.xlsm,它对我有用——你用的是哪个版本的office?
  • @avb 是的,你是对的!我没有注意到……我真是个愚蠢的哈哈。非常感谢您的帮助!
  • 还要注意DisplayAlerts = False相当危险,这里没有必要使用它——在这种情况下它可能没有让你看到真正的错误信息

标签: excel vbscript vba


【解决方案1】:

objExcel.workbooks.Open命令后,可以使用Set objWorkbook = Activeworkbook通过objWorkbook对象来处理打开的工作簿

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多