You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Office 365 Excel中Application.MacroOptions的ArgumentDescriptions失效求助

问题

使用Application.MacroOptions方法定义自定义函数(UDF)时,ArgumentDescriptions参数无法生效。已成功应用Description参数,但函数向导中不显示参数描述。

UDF代码:

Function sum_test(p1, p2)
    sum_test = p1 + p2
End Function

注册函数的宏代码:

Sub Register_sum_test()
Dim sum_test_Args() As String
Dim sum_test_Desc As String
Dim test

    sum_test_Desc = "adds two numbers"
    
    ReDim sum_test_Args(1 To 2)
    sum_test_Args(1) = "first number"
    sum_test_Args(2) = "second number"
    
    Application.MacroOptions Macro:="Personal.xlsb!sum_test", Description:=sum_test_Desc
    Application.MacroOptions Macro:="Personal.xlsb!sum_test", ArgumentDescriptions:=sum_test_Args
    
End Sub
解决方案

问题出在两次调用Application.MacroOptions,第二次调用会干扰第一次的设置绑定,单独设置ArgumentDescriptions无法正确关联到函数。需要将Description和ArgumentDescriptions合并到同一次调用中:

修改后的注册宏代码:

Sub Register_sum_test()
Dim sum_test_Args() As String
Dim sum_test_Desc As String

    sum_test_Desc = "adds two numbers"
    
    ReDim sum_test_Args(1 To 2)
    sum_test_Args(1) = "first number"
    sum_test_Args(2) = "second number"
    
    ' 合并所有参数到同一次调用
    Application.MacroOptions _
        Macro:="Personal.xlsb!sum_test", _
        Description:=sum_test_Desc, _
        ArgumentDescriptions:=sum_test_Args
    
End Sub

额外注意事项:

  • ArgumentDescriptions数组的长度必须和UDF的参数数量完全一致,索引顺序要和参数顺序严格对应。
  • 确保Personal.xlsb已正常加载,宏中对函数的路径引用Personal.xlsb!sum_test准确无误。

内容的提问来源于stack exchange,提问作者user26016009

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:20:57