使用任务管理器打开Excel文件,运行宏,保存文件,然后关闭

时间:2017-01-03 19:06:13

标签: excel excel-vba macros taskmanager vba

我正在尝试每天早上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

非常感谢任何帮助。我是新手使用任务管理器&amp; .vbs文件,并且仍然不是VBA的专家,这就是我使用论坛。

2 个答案:

答案 0 :(得分:1)

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

Sub Auto_Close()

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

End Sub

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

答案 1 :(得分:0)

如果要保存到同一工作簿,则需要以“可写”方式打开工作簿。即:

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