我需要通过计划任务在Excel电子表格中运行宏。 我定义了如下工作:如何通过计划任务运行Excel宏
“C:\ Program Files文件\的Microsoft Office \ OFFICE10 \ EXCEL.EXE” “”
的问题是,在作业开始时,Excel会显示弹出并询问我们是否要禁用/启用阻止作业执行的宏。
如何运行此宏而无需手动点击启用宏?
我需要通过计划任务在Excel电子表格中运行宏。 我定义了如下工作:如何通过计划任务运行Excel宏
“C:\ Program Files文件\的Microsoft Office \ OFFICE10 \ EXCEL.EXE” “”
的问题是,在作业开始时,Excel会显示弹出并询问我们是否要禁用/启用阻止作业执行的宏。
如何运行此宏而无需手动点击启用宏?
写一个简短的VBScript启动Excel,加载您的工作簿,并使用Application.Run运行宏。让您的计划任务运行vbscript。
您可以尝试降低excel的安全级别,以避免在启动excel时弹出此窗口。
您不指定在Windows 7旗舰什么Excel或什么的Windows(或Macintosh)的版本,所以我会指定我使用Excel 2010中从Office 32位版本64有点...
如果你要保持你的工作簿打开并运行代码,在指定的时间,后来,那就试试这个..
将新代码模块插入到您的项目中 - 或者 - 使用您的项目中已有的模块。
创建调度子程序,如下图所示:
Sub Scheduler()
'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED.
Application.OnTime TimeValue("11:46:40"), "TheScheduledSub"
End Sub
创建要运行一个子程序(或功能)。下面是一个用于本实施例中:
Sub TheScheduledSub()
Debug.Print "TheScheduledSub() has run at " & Time
End Sub
Scheduler()
将在内部Scheduler()
指定的确切时间,通过TimeValue
定义执行TheScheduledSub()
。你可以阅读更多关于TimeValue
here。
您可能可以传递您希望Scheduler()sub执行您的子或函数的时间值作为子参数。
可以说,从现在开始你可能会运行一个小时5小时。 I.E. Application.OnTime Now + TimeValue(“05:00:00”),“TheScheduledSub”
或者从现在开始的一天?玩它。
我没有得到两个潜艇在不同的时间执行。我也试图同时执行两个。我同时执行两个不同的子目录的经验是,第二个子目录似乎在第一个子目录之前执行,但我没有充分探索它。所以YMMV。
我不认为Excel VBA具有多线程功能,因此请牢记这一点。我正在从Office套件运行32位Excel 2010。不知道64位Office Excel的行为或其他任何版本或平台。无论如何,多线程/多任务处理Excel VBA不是你问的问题,而是需要考虑的问题。
看到这个问题,并玩上述我可以想到一些想法,我想尝试自己!
您还可以使用工作簿打开并调用宏。只要有计划的任务打开工作簿,宏将在工作簿打开时运行。
另外,我发现这是一个好主意,有
Application.DisplayAlerts = False
之初禁用运行时可能会中断您的宏任何弹出消息。
还是看视频教程: http://youtu.be/lFSgV2gym9g
这可能有助于https://stackoverflow.com/questions/22771185/how-to-set-recurring-schedule-for-xlsm-file-using-windows-task - 程序员 – Justin 2018-01-18 03:45:35