【发布时间】:2020-02-04 17:52:03
【问题描述】:
以下是我的问题的摘要,您可以提供任何指导将不胜感激。
目标: 使用任务计划程序打开 Excel 并执行通过 Outlook 发送 Excel 工作表 PDF 的宏。
问题: Excel 文件依赖于 COM 加载项(位于与我的文件相同的路径中,但高几级)为将分发的报告提取数据。但是,当任务计划程序打开 Excel 实例时,将不会加载所需的加载项,因此报告不会更新(其他加载项加载正常)。该过程的所有其他部分都按预期工作。
我们的尝试: 禁用/启用更新链接提示(自动设置为无需询问即可更新)。我尝试打开一个随机的空白 Excel 文件以查看加载项是否会加载(它没有加载)。确保从任务管理器中关闭所有其他 Excel 实例(即幽灵 Excel)。已联系插件的开发人员,但尚未收到回复。 FWIW,当我手动执行脚本中概述的步骤时,一切正常。仅在使用脚本打开 Excel 时加载加载项失败。
我们对使用任务计划程序还很陌生,欢迎您提出想法。我已经包含了下面的脚本供您参考。如果有任何其他可能有用的信息,请告诉我们。
感谢您的宝贵时间和帮助。
'Input Excel File's Full Path
ExcelFilePath = "C:\mypath\myfile.xlsb"
'Input Module/Macro name within the Excel File
MacroPath = "Module1.SendPDF"
'Create an instance of Excel
Set ExcelApp = CreateObject("Excel.Application")
'Do you want this Excel instance to be visible?
ExcelApp.Visible = True 'or "False"
'Prevent any App Launch Alerts (ie Update External Links)
ExcelApp.DisplayAlerts = False
'Open Excel File
Set wb = ExcelApp.Workbooks.Open(ExcelFilePath)
'Execute Macro Code
ExcelApp.Run MacroPath
'Save Excel File (if applicable)
wb.Save
'Reset Display Alerts Before Closing
ExcelApp.DisplayAlerts = True
'Close Excel File
wb.Close
'End instance of Excel
ExcelApp.Quit
【问题讨论】:
-
我认为您需要以编程方式打开加载项。
-
感谢您的回复 BigBen。很高兴尝试这个,你能指导我到任何显示如何修改脚本来做到这一点的线程吗?
-
再次感谢@BigBen。也许这是在线程中解释的,我错过了,抱歉,如果我这样做了,但加载项的编程加载是否包含在启动 Excel 的脚本中,或者应该是我正在运行的宏的一部分在excel文件中?
-
我会在启动 Excel 的脚本中执行此操作。
标签: excel vba vbscript add-in windows-task-scheduler