尝试使用 VBS 运行 一个 Excel 子时找不到宏
Macro not found when trying to run an Excel sub with VBS
我在网上找到了以下代码来尝试自动执行 Excel 宏。
' Create a WshShell to get the current directory
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application")
Dim strSaveDefaultPath
Dim strPath
strSaveDefaultPath = myExcelWorker.DefaultFilePath
strPath = WshShell.CurrentDirectory
myExcelWorker.DefaultFilePath = strPath
' Open the Workbook specified on the command-line
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = strPath & "\Excel Report Creator.xlsm"
Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB,0, true)
' Build the macro name with the full path to the workbook
Dim strMacroName
strMacroName = "'" & strPath & "\Excel Report Creator" & "!ReferenceSheet.CommandButton1_Click"
on error resume next
myExcelWorker.Run strMacroName
if err.number <> 0 Then
MsgBox "errerr: " & err.Description
End If
err.clear
on error goto 0
oWorkBook.Save
myExcelWorker.DefaultFilePath = strSaveDefaultPath
' Clean up and shut down
Set oWorkBook = Nothing
myExcelWorker.Quit
Set myExcelWorker = Nothing
Set WshShell = Nothing
当 运行 我收到以下错误。
The macro may not be available in this workbook or all macros may be disabled.
我的传播sheet叫做Excel报告Creator.xlsm,sheet叫做ReferenceSheet,子是CommandButton1_Click。我在这里错过了什么吗?可能是 Excel?
内的设置
谢谢,
比尔
当工作簿名称包含空格时,您需要将其用单引号引起来。如果工作簿打开,则不需要完整路径:
' Build the macro name with the full path to the workbook
Dim strMacroName
strMacroName = "'Excel Report Creator.xlsm'" & _
"!ReferenceSheet.CommandButton1_Click"
on error resume next
myExcelWorker.Run strMacroName
if err.number <> 0 Then
MsgBox "errerr: " & err.Description
End If
err.clear
on error goto 0
并确保您呼叫的 Sub 是 Public
我在网上找到了以下代码来尝试自动执行 Excel 宏。
' Create a WshShell to get the current directory
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application")
Dim strSaveDefaultPath
Dim strPath
strSaveDefaultPath = myExcelWorker.DefaultFilePath
strPath = WshShell.CurrentDirectory
myExcelWorker.DefaultFilePath = strPath
' Open the Workbook specified on the command-line
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = strPath & "\Excel Report Creator.xlsm"
Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB,0, true)
' Build the macro name with the full path to the workbook
Dim strMacroName
strMacroName = "'" & strPath & "\Excel Report Creator" & "!ReferenceSheet.CommandButton1_Click"
on error resume next
myExcelWorker.Run strMacroName
if err.number <> 0 Then
MsgBox "errerr: " & err.Description
End If
err.clear
on error goto 0
oWorkBook.Save
myExcelWorker.DefaultFilePath = strSaveDefaultPath
' Clean up and shut down
Set oWorkBook = Nothing
myExcelWorker.Quit
Set myExcelWorker = Nothing
Set WshShell = Nothing
当 运行 我收到以下错误。
The macro may not be available in this workbook or all macros may be disabled.
我的传播sheet叫做Excel报告Creator.xlsm,sheet叫做ReferenceSheet,子是CommandButton1_Click。我在这里错过了什么吗?可能是 Excel?
内的设置谢谢, 比尔
当工作簿名称包含空格时,您需要将其用单引号引起来。如果工作簿打开,则不需要完整路径:
' Build the macro name with the full path to the workbook
Dim strMacroName
strMacroName = "'Excel Report Creator.xlsm'" & _
"!ReferenceSheet.CommandButton1_Click"
on error resume next
myExcelWorker.Run strMacroName
if err.number <> 0 Then
MsgBox "errerr: " & err.Description
End If
err.clear
on error goto 0
并确保您呼叫的 Sub 是 Public