当 运行 vba 脚本时,出现宏不可用或所有宏可能被禁用的错误
when running vba script, getting error that macro is not available or all macros may be disabled
我有几个脚本直到最近都运行良好。他们 运行 通过任务调度程序,当任务调度程序打开脚本时,它会得到以下信息:
第 20 行是这样的:
'Execute Macro Code
ExcelApp.Run MacroPath
这是完整的脚本:
'Input Excel File's Full Path
ExcelFilePath = "C:\vba-files\task_sched\task_modules.xlsm"
'Input Module/Macro name within the Excel File
MacroPath = "Module1.get_data"
'Create an instance of Excel
Set ExcelApp = CreateObject("Excel.Application")
'Do you want this Excel instance to be visible?
ExcelApp.Visible = 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
'Leaves an onscreen message!
MsgBox "Your Automated Task successfully ran at " & TimeValue(Now), vbInformation
宏设置已启用,如下所示:
当打开工作簿并且手动 运行 宏时,它工作正常。
它只是在 运行 通过脚本
时出错
我不明白它以前怎么能正常工作...基本上,您的 VBScript 代码应该完全限定要调用的过程。我的意思是,它还需要要调用的宏所在的工作簿名称(或全名)。请尝试:
ExcelApp.run "'" & ExcelFilePath & "'" & "!" & MacroPath
"'"
个字符使代码 运行 很好,即使文件路径包含空格...
理论上,使用工作簿全名会自动打开保留宏的工作簿,如果不打开...我没有在VBScript自动化上测试过。当从 Excel(已测试)
拨打电话时,它以这种方式工作
我有几个脚本直到最近都运行良好。他们 运行 通过任务调度程序,当任务调度程序打开脚本时,它会得到以下信息:
第 20 行是这样的:
'Execute Macro Code
ExcelApp.Run MacroPath
这是完整的脚本:
'Input Excel File's Full Path
ExcelFilePath = "C:\vba-files\task_sched\task_modules.xlsm"
'Input Module/Macro name within the Excel File
MacroPath = "Module1.get_data"
'Create an instance of Excel
Set ExcelApp = CreateObject("Excel.Application")
'Do you want this Excel instance to be visible?
ExcelApp.Visible = 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
'Leaves an onscreen message!
MsgBox "Your Automated Task successfully ran at " & TimeValue(Now), vbInformation
宏设置已启用,如下所示:
当打开工作簿并且手动 运行 宏时,它工作正常。 它只是在 运行 通过脚本
时出错我不明白它以前怎么能正常工作...基本上,您的 VBScript 代码应该完全限定要调用的过程。我的意思是,它还需要要调用的宏所在的工作簿名称(或全名)。请尝试:
ExcelApp.run "'" & ExcelFilePath & "'" & "!" & MacroPath
"'"
个字符使代码 运行 很好,即使文件路径包含空格...
理论上,使用工作簿全名会自动打开保留宏的工作簿,如果不打开...我没有在VBScript自动化上测试过。当从 Excel(已测试)
拨打电话时,它以这种方式工作