首页 文章

无法运行宏...此工作簿中可能无法使用该宏

提问于
浏览
18

我试图在不同的工作表上调用一个子,但我得到一个运行时错误消息 .

具体来说,我在这些工作表中有两个工作表和多个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" 但没有奏效 .

8 回答

  • 0

    有同样的问题,我'编译了VBA项目',发现了一个错误 . 在校正和编译之后,宏工作了 .

  • 1

    在类模块中创建例程时,也会遇到此问题 .

    当您尝试从外部运行代码时,您会收到此错误 .
    您也不能将宏指定给类模块的成员按钮 .

    如果您尝试通过按绿色播放按钮在代码内运行,您也会看到相同的错误 .

    将例程移动到常规模块或在调用类成员的常规模块中创建新例程 .

  • 0

    我也遇到了这个错误的问题,结果证明文件名导致了问题 .

    我这样称它为:Application.Run“'”&strPath&strFName&“'!UPC.PrintaFew”

    变量strFName中包含一个撇号,这当然搞砸了 . 花了我几个小时来搞清楚 . 但是一旦从文件名中删除了撇号就行了 .

  • 10

    删除您的名称宏并再次构建 . 我这样做了,宏工作了 .

  • 0

    我有与OP相同的问题,发现是由于选项声明拼写错误:

    ' Comment comment  
    
    Options Explicit  
    
    Sub someMacroMakechart()
    

    在子模块中,而不是正确的;

    ' Comment comment  
    
    Option Explicit  
    
    Sub someMacroMakechart()
    
  • 3

    我必须从文件名和宏名称中删除所有破折号和下划线,确保启用了宏并添加模块名称.macro名称

    这就是我最终得到的:Application.Run(“'”&WbName&“'”&“!ModuleName.MacroName”)

  • 4

    如果工作簿名称中有空格,则必须在文件名周围使用单引号(') . 我也删除了句号 .

    Application.Run "'Python solution macro.xlsm'!PreparetheTables"
    
  • 5

    Microsoft's KB,尝试允许以编程方式访问Visual Basic项目:

    单击“Microsoft Office按钮”,然后单击“Excel选项” . 单击信任中心 . 单击信任中心设置 . 单击宏设置 . 单击以选中“信任对VBA项目对象模型的访问权限”复选框 . 单击“确定”关闭“Excel选项”对话框 . 您可能需要关闭并重新打开Excel .

相关问题