是否可以在任务计划程序打开excel文件时运行宏?

时间:2014-12-04 12:11:09

标签: excel vba excel-vba

我已经安排了一个文件打开,运行宏并在此之后关闭。一切正常,除非我想手动打开文件,它在运行宏时打开时关闭。 是否可以将宏设置为仅在文件自动打开时运行?

3 个答案:

答案 0 :(得分:3)

听起来你的Sub正在使用Open事件。只需将其作为regualr Sub,在模块中,并使用您的vbs脚本打开工作表并运行宏。

我曾经一直这样做,但找不到我的旧脚本。找到了这个,我知道它与我的旧版相似。

Dim xlApp
Dim xlWkb
Set xlApp = CreateObject("excel.application")
Set xlWkb = xlApp.Workbooks.Open("PATH TO YOUR FILE")
xlApp.Visible = True
xlWkb.RunAutoMacros 1 'enables macros to be run on open
xlApp.Run ("YOUR PROCEDURE")
xlApp.Workbooks("YOUR WORKBOOK NAME").Save 'Save the workbook
xlApp.Quit 'quits excel

另存为.vbs和日程安排。找到示例here。这样,您可以随时打开和编辑脚本,而无需自动运行。

答案 1 :(得分:1)

如果您自己打开文件的时间和调度程序打开时的时间从不重叠,您可以在运行代码之前添加对当前时间的检查,如果它在调度程序的窗口内运行宏,其他明智的不是。

答案 2 :(得分:0)

Excel无法检测是手动打开还是由调度程序打开。但是,如果您手动打开它,可以在受保护的视图中打开它并以这种方式禁用宏。在' Open ..'对话框单击'打开'上的小箭头。按钮,然后选择“受保护的视图”。