宏无法找到另一个

时间:2014-09-15 18:19:52

标签: excel vba excel-vba

我正在尝试使用当前文件中的宏(即工作簿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

2 个答案:

答案 0 :(得分:1)

打开VBE并使用 CTRL + F 以确保该过程实际存在于wbTemp工作簿中。

如果它不存在,那那就是你的问题。

  

我正在尝试使用当前文件中的宏(即工作簿A)在工作簿B中运行宏

我怀疑那是你的问题。您不能以这种方式调用宏。如果它存在于文件A中,并且您想在文件B上运行它,那么您可以正常调用它。这当然假定您的过程编写正确并且能够在其他工作簿文件上执行。如果您依赖ActiveWorkbookThisWorkbookSelect方法,则可能会失败,因为它未设置为在其他文件上运行。

答案 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

请根据您的需要调整代码。