Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过计划任务运行Excel宏_Excel_Vba - Fatal编程技术网

如何通过计划任务运行Excel宏

如何通过计划任务运行Excel宏,excel,vba,Excel,Vba,我需要通过计划任务在Excel电子表格中运行宏。 我对工作的定义如下: “C:\Program Files\Microsoft Office\Office10\EXCEL.EXE”“” 问题是,当作业启动时,Excel会显示一个弹出窗口,询问是否要禁用/启用宏,这会阻止作业的执行 如何在不必手动单击“启用宏”的情况下运行此宏?您可以尝试降低excel的安全级别,以避免在启动excel时出现此弹出窗口。编写一个简短的vbscript,用于启动excel、加载工作簿并使用应用程序。运行以运行宏。让计

我需要通过计划任务在Excel电子表格中运行宏。 我对工作的定义如下:

“C:\Program Files\Microsoft Office\Office10\EXCEL.EXE”“”

问题是,当作业启动时,Excel会显示一个弹出窗口,询问是否要禁用/启用宏,这会阻止作业的执行


如何在不必手动单击“启用宏”的情况下运行此宏?

您可以尝试降低excel的安全级别,以避免在启动excel时出现此弹出窗口。

编写一个简短的vbscript,用于启动excel、加载工作簿并使用应用程序。运行以运行宏。让计划的任务运行vbscript

例如:

您没有指定Excel的哪个版本或Windows(或Macintosh)的哪个版本,因此我将指定在Windows 7 Ultimate 64位上使用Office 32位的Excel 2010


如果希望保持工作簿打开并在指定时间运行代码,请稍后尝试此操作。

在项目中插入新的代码模块,或者使用项目中已有的代码模块

创建一个调度程序子例程,如下所示:

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()
中指定的时间执行
scheduledsub()
,该时间由
时间值定义。您可以阅读有关
TimeValue
的更多信息

您可能会将希望Scheduler()子系统执行子系统或函数的时间值作为子系统中的参数传递

比方说,从现在起,你可能要跑5个小时。即。 Application.OnTime Now+时间值(“05:00:00”),“调度子系统”

或者一天以后?玩玩它

我确实在不同的时间执行了两个潜艇。我还试图同时执行两个。我的经验是,两个不同的sub同时执行,第二个sub似乎在第一个sub之前执行,但我还没有完全探索它。所以YMMV

我不认为Excel VBA具有多线程功能,所以请记住这一点。我正在从Office套件运行32位Excel 2010。不确定64位Office Excel的工作方式,也不确定其他版本或平台的工作方式。无论如何,多线程/多任务Excel VBA不是您所要求的,但需要考虑


看到这个问题,玩上面的游戏,我可以想出一些想法,我想自己试试

您还可以使用工作簿打开和调用宏。只要让计划任务打开工作簿,宏就会在工作簿打开时运行。

此外,我发现最好是

Application.DisplayAlerts=False

在开始时,禁用任何可能在运行宏时中断宏的弹出消息

或查看教程视频:

+1最佳方法。在vbs中重新编码宏以确保代码运行是值得的,即解决启用宏的问题。脚本似乎可以工作,但不会阻止“启用宏”提示。我认为这可能与我工作场所安装的公司安全策略有关?这可能会有所帮助