【问题标题】:Use vbs to open an excel workbook, run a macro and save the workbook使用vbs打开excel工作簿,运行宏并保存工作簿
【发布时间】:2015-06-02 06:20:08
【问题描述】:
  • 我有一个需要每 5 分钟运行一次的宏。我有一个安排宏的vbs 文件。
  • 宏正在检查某个文件夹中的新文件,将其信息写入表格,并将文件移动到存档中。
  • 表格与宏在同一个 excel 文件中!

它运行宏很好,但最后它问我是否要保存文件。

我需要它来自动保存宏对文件所做的更改!

这是我目前的vbs 代码:

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
Set xlBook = xlApp.Workbooks.Open("W:\Excel Macro\EIM File Maneger\EIM_file_check.xlsm", 0, True)

xlApp.Run "GetFiles"

xlBook.Close true
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

【问题讨论】:

    标签: vba excel vbscript


    【解决方案1】:

    下面更新了代码,我也调整了清理的逻辑

    Dim xlApp, xlBook
    
    Set xlApp = CreateObject("Excel.Application")
    xlApp.DisplayAlerts = False
    Set xlBook = xlApp.Workbooks.Open("W:\Excel Macro\EIM File Maneger\EIM_file_check.xlsm", 0, True)
    
    
    xlApp.Run "GetFiles"
    
    xlbook.Save
    xlBook.Close False
    set xlBook = Nothing
    
    xlApp.Quit
    Set xlApp = Nothing
    
    WScript.Echo "Finished."
    WScript.Quit
    

    【讨论】:

    • 我需要它来保存包含更改的文件
    • 你改变了什么?
    • 似乎这不应该工作,因为您指定文件将以ReadOnly 模式打开。
    • @DavidZemens 我刚刚将此代码用于类似的任务,我希望我先阅读了您的评论。由于 DisplayAlerts 为 false 并且该文件是只读的,因此它静默保存失败。将只读参数更新为 false 确实解决了问题
    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2016-05-15
    • 2018-11-10
    • 2014-09-12
    相关资源
    最近更新 更多