我正在尝试在不同的工作表上调用sub但是我收到了运行时错误消息。
具体来说,我在这些工作表中有两个工作表和多个VBA子。在其中一个VBA项目(比如workbook1.xlsm)中,我有以下代码:
Sub AnalysisTableMacro()
Workbooks("Python solution macro.xlsm").Activate
Application.Run "Python solution macro.xlsm!.PreparetheTables"
End Sub
但是我收到了以下错误。两个工作表上的宏都已启用。在两个工作表中,subs都在Module1中。
无法运行宏'Workbook.xlsm!PrepareTheTables'。该宏可能在>此工作簿中不可用,或者可能禁用所有宏。
我也试过Application.Run "Python solution macro.xlsm!Module1.PreparetheTables"
但是没有用。
答案 0 :(得分:12)
如果工作簿名称中有空格,则必须在文件名周围使用单引号(')。我也删除了句号。
Application.Run "'Python solution macro.xlsm'!PreparetheTables"
答案 1 :(得分:6)
Per Microsoft's KB,尝试允许以编程方式访问Visual Basic项目:
- 单击“Microsoft Office按钮”,然后单击“Excel选项”。
- 点击信任中心。
- 单击“信任中心设置”。
- 单击“宏设置”。
- 单击以选中“信任对VBA项目对象模型的访问权限”复选框。
- 单击“确定”关闭“Excel选项”对话框。
- 您可能需要关闭并重新打开Excel。
醇>
答案 2 :(得分:5)
有同样的问题和我'编译的VBA项目',它确定了一个错误。经过校正和编译后,宏工作了。
答案 3 :(得分:4)
在类模块中创建例程时,也会遇到此问题。
当您尝试在外部运行代码时,会出现此错误 您也不能将宏指定给类模块的成员按钮。
如果您尝试通过按绿色播放按钮在代码中运行,您也会看到相同的错误。
将例程移入常规模块或在调用类成员的常规模块中创建新例程。
答案 4 :(得分:2)
我也遇到了这个错误的问题,结果证明文件名导致了问题。
我这样称呼它: Application.Run“'”& strPath& strFName& “'!UPC.PrintaFew”
变量strFName中包含一个撇号,这当然搞砸了。花了我几个小时来搞清楚。但是一旦从文件名中删除了撇号就可以了。
答案 5 :(得分:2)
在我的情况下,当我将宏(公共子项)放入文件的ThisWorkbook
节中时,期望该文件对Application.Run
函数可见,该错误发生了。情况并非如此,我得到了您提到的错误。
我将宏移到了单独的模块中,它解决了问题。
答案 6 :(得分:0)
删除您的名称宏并重新构建。 我做了这个,宏工作了。
答案 7 :(得分:0)
我遇到与OP相同的问题,发现是由于选项声明拼写错误:
' Comment comment
Options Explicit
Sub someMacroMakechart()
在子模块中,而不是正确的;
' Comment comment
Option Explicit
Sub someMacroMakechart()
答案 8 :(得分:0)
我必须从文件名和宏名称中删除所有破折号和下划线,确保已启用宏并添加模块名称.macro名称
这就是我最终的结果:Application.Run(“'”& WbName&“'”&“!ModuleName.MacroName”)
答案 9 :(得分:0)
在我的情况下,当Sub名称与Module名称相同时会出现此错误。
答案 10 :(得分:0)
如果您在“ Microsoft Excel对象”(如Sheet1,Sheet2等)中创建子或函数,而不是在模块中创建它,也会发生此错误。
例如:
使用VBA创建按钮并设置.OnAction = 'btn_action'
。然后Sub btn_action
放入Sheet对象而不是Module中。
答案 11 :(得分:0)
进入任务管理器,查看是否在后台运行任何Microsoft Excel进程。我关闭了我的excel后台进程,并且我的代码再次工作了。
答案 12 :(得分:0)
我有相同的错误消息“找不到宏___等”,即使将文件另存为XLSX,此问题仍然存在。这似乎很奇怪……如果文件没有宏,它将如何运行宏!
当我使用“自定义UI编辑器”检查文件时,发现初始化文件时正在调用宏,而当用户单击“保存”按钮时正在调用另一个自定义宏。
使用“自定义UI编辑器”,我删除了所有XML代码,错误消息也消失了。