【问题标题】:Open Excel File with Task Manager, Run Macro, Save file, and close使用任务管理器打开 Excel 文件,运行宏,保存文件,然后关闭
【发布时间】:2017-01-03 19:06:12
【问题描述】:

我正在尝试每天早上 5 点打开一个 excel 文件,运行一个宏来提取数据和文件管理器/组织数据,保存文件然后关闭它。我目前有带有 .vbs 脚本的任务管理器来打开下面的文件,文件打开,但是当它关​​闭时弹出保存窗口,并尝试将文件保存为原始文件的副本。

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

 ' Import Add-Ins
'xlApp.Workbooks.Open "G:\CNC\Schiermeyer\Active Job Files\Autorefresh" "C:\<pathOfXlaFile>\MyMacro.xla"
'xlApp.AddIns("MyMacro").Installed = True

'Open Excel workbook
Set xlBook = xlApp.Workbooks.Open("G:\CNC\Schiermeyer\Active Job Files\Autorefresh\AutoRefresh Active Job Report.xlsm", 0, True)

' Run Macro
xlApp.Run "sheet1.ActiveJobReportRefresh"

xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Quit

任何帮助将不胜感激。我是使用任务管理器和 .vbs 文件的新手,但仍然不是 VBA 的专业人士,这与我使用论坛的情况一样。

【问题讨论】:

  • 要执行 vbs 脚本,请使用 Windows 任务计划程序在每天凌晨 5 点执行 vbs 文件。
  • xlBook.Close False 将告诉 Excel 不要保存任何更改
  • 我也遇到了任务管理器的问题,说任务已经开始,但它会继续运行。,
  • 米奇,我能做到,问题更多的是文件无法保存或关闭。
  • 提姆,我需要在关闭前保存文件

标签: excel macros taskmanager vba


【解决方案1】:

我创建了一个模块并插入了以下代码:

Sub Auto_Close()

If ThisWorkbook.Saved = False Then
    ThisWorkbook.Save
End If

End Sub

但是这个模块是在用户点击右上角的关闭 (X) 时创建的,excel 将保存并关闭而不要求确认。也许您可以尝试修改此代码。谢谢。

【讨论】:

    【解决方案2】:

    如果您想保存到同一个工作簿,您需要将工作簿打开为“可写”。即:

    Set xlBook = xlApp.Workbooks.Open("G:\CNC\Schiermeyer\Active Job Files\Autorefresh\AutoRefresh Active Job Report.xlsm", 0, False)

    【讨论】:

      最近更新 更多