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
相关产品推荐
相关产品推荐

