[英]Is it possible to run macro only when excel file is opened by Task Scheduler?
我已计划要打开,运行宏并在此之后关闭文件。 一切正常,除非我要手动打开文件,否则它将在运行宏时在打开时关闭。 是否可以将宏设置为仅在文件自动打开时运行?
听起来您的Sub正在使用Open Event。 只需将其作为模块内部的常规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并计划。 在这里找到示例。 这样,您可以随时打开和编辑脚本,而无需自动运行。
如果您一天中自己打开文件的时间与调度程序打开文件的时间是不重叠的,则只需在运行代码之前添加当前时间的检查,并且它位于调度程序窗口中即可运行宏,其他明智的不要。
Excel无法检测它是手动打开还是由计划程序打开。 但是,如果手动打开它,则可以在受保护的视图中打开它,并以这种方式禁用宏。 在“打开..”对话框中,单击“打开”按钮上的小箭头,然后选择“受保护的视图”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.