【问题标题】:Application.MacroOptions and Error 1004Application.MacroOptions 和错误 1004
【发布时间】:2012-06-27 12:23:30
【问题描述】:

我想在像 Works.xla 这样的插件中向 Excel VBA 注册一个函数类型 CalculateHours(work_hour, rest_hour)

我尝试使用Application.MacroOptions 注册函数。以下代码在Class 文件中,函数在另一个模块文件中。它们会在我们打开 Excel 和插件时加载。

代码:

Private Function AddFunctions()    
    With MyFunction       
        Application.MacroOptions .Name, _
            .Description, , , , , .Category, , , .HelpFilePath                
    End With    
End Function

预期:

我想获得参数帮助,Excel 函数向导中的函数描述作为其他内置函数。通过帮助按钮链接到我的帮助文件。

结果:

Error number: 1004 Application-defined or object-defined error

Method "MacroOptions" of object "_Application" failed

有什么(或一切)错了吗?

我有 10 个函数,每次加载插件时都需要将它们自动添加到 Excel 函数向导中。

【问题讨论】:

  • 看看这个链接有没有帮助? stackoverflow.com/questions/10987037/…
  • @SiddharthRout 我改变了参数的调用,错误仍然存​​在。帮助文件不是我关心的,而是错误:)
  • 你能更新你当前使用的代码吗?另外,不要从类模块注册函数,而是尝试从加载项的Workbook_Open() 事件注册它
  • @SiddharthRout 值得一试。谢谢你多次帮助我:)

标签: function excel user-defined-functions vba


【解决方案1】:

2016 年 7 月 12 日之后,在遵循一些帖子的建议并做了一些其他毫无意义的事情之后,我发现如果 Application.MacroOptions Description:=FuncDesc 超过 255 个字符,则会发生此错误。所以基本上不要对用户定义函数的描述过于冗长,或者只是添加一个

如果 Len(FuncDesc) > 255 那么 关于运行时错误“1004”的可怕警告消息 结束如果

【讨论】:

  • 哇。即使几年前我离开了这个项目,听到解决方案也很好。我不确定这是我原来的问题的情况,所以我不能将其标记为答案。但是请让我投赞成票。谢谢!
【解决方案2】:

我知道这个问题很老了,但我会发布我对此错误的解决方案,因为它可能很常见并且异常消息没有提供信息。
我通过将宏/UDF 持有者工作簿名称传递给“宏”参数来修复它,例如“'Workbook.xls(x/m/b)'!Macro/UDF_Name”:

' Adding a macro from Personal.xlsb
Application.MacroOptions _
                             Macro:="'PERSONAL.xlsb'!Macro/UDF_Name", _
                             Description:="Description", _
                             ArgumentDescriptions:=ArgumentsDescription()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多