如何在不打开excel工作表或VBA宏的情况下,安排VBA宏每天在特定时间运行一次?

如何在不打开excel工作表或VBA宏的情况下,安排VBA宏每天在特定时间运行一次?,vba,excel,Vba,Excel,我甚至不知道从哪里开始,非常感谢您的帮助。一个解决方案: 将Windows任务计划程序配置为在每天的特定时间启动批处理文件 该批处理文件使用cscript或wscript运行VBScript文件 VBScript通过Excel的COM接口与Excel交互 在实现方面,先做3,然后做2,然后做1。当然,在某种意义上,这将打开相关的excel工作表,但您可以将整个过程设置为后台进程,因此您不会注意到。好吧,有几个选项,但我认为第一个选项是Windows任务计划程序 按Windows+R键打开运行对话

我甚至不知道从哪里开始,非常感谢您的帮助。

一个解决方案:

将Windows任务计划程序配置为在每天的特定时间启动批处理文件

该批处理文件使用cscript或wscript运行VBScript文件

VBScript通过Excel的COM接口与Excel交互


在实现方面,先做3,然后做2,然后做1。当然,在某种意义上,这将打开相关的excel工作表,但您可以将整个过程设置为后台进程,因此您不会注意到。

好吧,有几个选项,但我认为第一个选项是Windows任务计划程序

按Windows+R键打开运行对话框,键入taskschd.msc,然后按Enter键。 注意:这将打开任务计划程序。此文件位于: C:\Windows\system32\taskschd.msc

在左侧窗格中选择任务计划程序库时,单击/点击最右侧窗格中的“创建任务”。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step1.jpg

在“常规”选项卡下,键入要为其创建此快捷方式的程序的名称。请参见下面的屏幕截图 注意:这将是任务的名称。作为一个例子,我将为该程序使用CCleaner。记下此名称,稍后在下面的步骤12和14中您将需要它

提升的程序快捷方式,无UAC提示-Create-step2.jpg

选中“以最高权限运行”框。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step3.jpg

单击/点击配置下拉框以打开它,然后选择Windows®7,Windows服务器™ 2008 R2或您当前所在的Windows。请参见上面和下面的屏幕截图 注意:这类似于兼容性模式。如果程序不支持在Windows 7中正常运行,则可以选择不支持在Windows 7中运行的操作系统,使其在兼容模式下运行,就像它在该操作系统而不是Windows 7中运行一样

无UAC提示的提升程序快捷方式-创建下拉框.jpg

单击/点击“操作”选项卡,然后单击“新建”按钮。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step4.jpg

在“操作”选项卡的“程序/脚本:”框中,复制并粘贴下面的路径。请参见步骤9下面的屏幕截图 注意:感谢chillz更新了第7步和第8步

%windir%\System32\cmd.exe

在“操作”选项卡的“添加参数可选:”框中,键入以下参数。请参见步骤9下面的屏幕截图

注意:将下面参数中的任务名称替换为您在步骤3中输入的名称,例如:CCleaner加引号,并将下面参数中程序的完整路径替换为引号中程序的.exe文件的实际完整路径

/c start "Task Name" "Full Path of Program"


For example:

Code:

/c start "CCleaner" "C:\Program Files\CCleaner\CCleaner64.exe"
单击/点击OK。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step7.jpg

单击/轻触“条件”选项卡,如果计算机首先切换到电池电源盒,则取消选中“停止”,然后取消选中“仅当计算机使用交流电源盒时启动任务”。请参见下面的屏幕截图 注意:此步骤主要针对笔记本电脑,这样当笔记本电脑使用电池供电时,您就可以运行该程序

提升的程序快捷方式,无UAC提示-Create-step8.jpg

无UAC提示的提升程序快捷方式-Create-conditions.jpg

单击/点击OK。请参见上面的屏幕截图

现在,您将看到使用步骤3中提供的名称ex:CCleaner创建的新任务。关闭任务调度程序。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step9.jpg

右键单击或按住桌面的空白区域,然后单击/点击新建和快捷方式

在下面的位置字段中键入目标,然后单击/点击下一步按钮。请参见下面的屏幕截图 注意:在步骤3中使用的引号内用ex:CCleaner名称替换目标中的任务名称

schtasks/run/tn任务名称

例如:对于我在步骤3中使用的任务名称CCleaner,我会键入:

schtasks /run /tn "CCleaner"
提升的程序快捷方式,无UAC提示-Create-step10.jpg

为快捷方式ex:CCleaner键入所需的名称,然后单击/点击“完成”按钮。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step11.jpg

右键单击桌面上的新快捷方式ex:CCleaner,然后单击/点击属性

单击/点击快捷方式选项卡和更改图标按钮。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step12.jpg

单击/点击OK。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step13.jpg

单击/轻触浏览按钮。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step14.jpg

导航到th的.exe文件 使用创建此快捷方式的e程序,选择它,然后单击/点击打开。请参见下面的屏幕截图 注意:如果您有自己的图标,您更愿意使用它,那么请导航到您保存该图标的位置

提升的程序快捷方式,无UAC提示-Create-step15.jpg

选择快捷方式所需的图标,然后单击/点击“确定”。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step16.jpg

单击/点击OK。请参见下面的屏幕截图

提升的程序快捷方式,无UAC提示-Create-step17.jpg

现在,您可以使用此提升的快捷方式在启动文件夹中启动时运行、在启动时作为任务运行、锁定到“开始”菜单、锁定到任务栏、指定键盘快捷方式或移动到您喜欢的位置以便于使用

当您运行这个新的提升的快捷方式时,您将不再需要单击/点击YES来批准UAC提示,以允许程序以管理员身份运行

有关所有详细信息,请参阅下面的链接

如果您使用的是Windows 8或更新版本,请参阅此链接


假设您在Windows环境中,请查看任务计划程序。在VBA工作簿中打开事件。您获得其他人编写的完整代码的机会非常低。这个问题太模糊/广泛。您可以使用windows计划程序每天打开excel文档,然后宏将其关闭。您可以使用wsscript编写vbaesque,并通过windows调度程序调用它。。。。您可以通过windows调度程序调用powershell。您缺少的是一个调度程序。windows调度程序只是一个例子。您可以编写自己的服务,作为调度器在后台运行;但为什么要重新发明轮子呢。如果不打开工作簿,您可以自动执行此操作,它将无法工作。VBA代码只能与打开的工作簿交互。请不要忘记处理异常。如果计算机上的电源按计划关闭,会发生什么情况?该怎么办?当调度程序运行时,如果文件被锁定,会发生什么情况?如果工作未能成功完成任务,您需要以某种方式通知,以便采取适当的行动;这就是为什么经常调用.bat或程序来处理这些事情。@james:ontime计时器将在进程终止时被终止。非常感谢,他们已经向我解释了这个方法,但没有深入解释,但是现在你把它说得更清楚了。非常感谢你的解决方案,它奏效了perfectly@james:祝贺实施。需要一段时间,不是吗?不是的解决方案很快