我正在尝试使用当前文件中的宏(即工作簿A)在工作簿B中运行宏 - 我收到以下错误:
Run-time error '1004':
Cannot run the macro 'Workbookname!Macroname'. The macro may not be available in the workbook or all macros may be disabled
现在,我检查了所有拼写(即工作簿名称和macroname)并且所有拼写都很好,但是当我转到工作簿B时,我无法在该工作簿中可用的宏列表中找到该宏 - 请指教!
工作簿B正在调用Workbook A宏,如下所示:
Set wbTemp = Workbooks.Open("Workbookname")
Application.Run wbTemp.Name & "!" & macroName, folderName
wbTemp.Close True
答案 0 :(得分:1)
打开VBE并使用 CTRL + F 以确保该过程实际存在于wbTemp
工作簿中。
如果它不存在,那那就是你的问题。
我正在尝试使用当前文件中的宏(即工作簿A)在工作簿B中运行宏
我怀疑那是你的问题。您不能以这种方式调用宏。如果它存在于文件A中,并且您想在文件B上运行它,那么您可以正常调用它。这当然假定您的过程编写正确并且能够在其他工作簿文件上执行。如果您依赖ActiveWorkbook
,ThisWorkbook
或Select
方法,则可能会失败,因为它未设置为在其他文件上运行。
答案 1 :(得分:0)
wbTemp.Name计算程序不喜欢的空格或其他字符。
我自己的代码:
StringVar = Application.Run("'" & Wb.Name & "'!Taille_de ", sh.Name)
其中taille_de
是函数,sh.name
是函数的参数。
并使用参数调用sub:
Call Application.Run("'" & wb.Name & "'!Module11.son_par-type", Sh.Name)
或
Application.Run "'" & wb.Name & "'!Module11.son_par-type " & Sh.Name
请根据您的需要调整代码。