2013-08-22 152 views
11

我正在尝试调用其他工作表上的子项,但运行时出现错误消息。无法运行宏...该宏可能无法在此工作簿中使用

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

任何帮助,将不胜感激。

+3

您在感叹号后没有完全停止尝试吗? – pnuts

回答

1

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

+1

我对这个解决方案并不兴奋(当然),但是当其他建议失败时,这一个成功 –

7

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

  1. 单击Microsoft Office按钮,然后单击Excel选项。
  2. 点击信任中心。
  3. 单击信任中心设置。
  4. 单击宏设置。
  5. 单击以选中对VBA项目对象模型的信任访问复选框。
  6. 单击确定关闭Excel选项对话框。
  7. 您可能需要关闭并重新打开excel。
0

最可能的原因错误是在Excel VBA中的安全功能,不会允许运行VBA代码。用户应明确授予与工作簿一起运行excel宏的权限。 此可能或不可能需要编程访问Visual Basic项目。

什么来解决这个错误对我来说是: -

  1. 启用编辑和启用内容

    Enable Content Button

  2. 没有编程访问沿着 Steps and details
  3. 更改宏设置更改宏设置与编程 访问(不建议如果任何上述过程解决。 这将使代码控制更改的元素在VBA 项目本身,包括引用和代码本身 - Reference

    Steps Here

1

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

' Comment comment 

Options Explicit 

Sub someMacroMakechart() 

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

' Comment comment 

Option Explicit 

Sub someMacroMakechart() 
4

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

Application.Run "'Python solution macro.xlsm'!PreparetheTables" 
0

保存为.xlsm(启用Excel宏的工作簿)。

0

在我的情况下,这是由于在一个不同的模块中有一个公共过程,并且在调用模块中具有相同名称的私有过程。 VBA不区分这两者,因此给出了一个钝的错误。

2

有同样的问题,我'编译VBA项目'确定了一个错误。更正和编译后,宏工作。

0

,我不得不删除所有破折号和文件名和宏名强调,确保宏被启用,并将它们添加模块name.macro名

这是我结束了:Application.Run(” “” & WbName &“'” &‘!ModuleName.MacroName’)

0

开口,其最后保存其中具有语法错误的宏时,这个错误弹出。 虽然消息将引用调用错误的子或函数的宏。为了解决这个问题,我通常会尝试单独运行最后编辑的宏。

0

我也有这个错误的问题,原来的文件名导致了问题。

我打电话这样说: Application.Run “ '” & strPath的& strFName & “'!UPC.PrintaFew”

变量strFName包含撇号在它其中,当然把事情搞乱。花了我几个小时才弄明白。但是一旦撇号从文件名中删除了,它就起作用了。

-1

检查:

Application.Run "'Python solution macro.xlsm'!ThisWorkbook.PreparetheTables" 

使用模块名。

相关问题