macros不能find另一个

我想在工作簿B中使用当前文件(即工作簿A)中的macros运行macros – 我得到以下错误:

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,我无法find工作簿中可用的macros列表中的macros – 请指教!


工作簿B正在调用工作簿一个像这样的macros:

 Set wbTemp = Workbooks.Open("Workbookname") Application.Run wbTemp.Name & "!" & macroName, folderName wbTemp.Close True 

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

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

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

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

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

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