我需要创建一个函数,它将采用不同(不固定)的参数。然后它应该对服务器执行请求,并根据第一个参数,接收不同的数据。
E.g。 = performMethod(“methodName”;“arg1”;“arg2”; ...)
主要思想是创建统一的功能,它将取代所有其他功能并将所有逻辑移动到服务器端,这样我就可以在服务器上添加新功能,而无需替换客户端的excel文件。
所以我的想法就是“随时随地”定义函数,这样用户就会看到excel提示符,描述参数。我可以通过VBA实现吗?如果没有,还有其他方法吗?
答案 0 :(得分:2)
您确定需要不同数量的参数吗?也许更好的想法是有一个参数,实际上是列表数组或参数的变体?
答案 1 :(得分:2)
Excel VBA也可以使用Parameter Arrays。所以以下UDF
Public Function performMethod(methodName As String, ParamArray args() As Variant) As Variant
Dim sArgs As String
For Each arg In args
arg = arg
If VarType(arg) = vbVariant + vbArray Then
sArgs = sArgs & "; "
For Each itm In arg
sArgs = sArgs & itm & ","
Next
sArgs = Left(sArgs, Len(sArgs) - 1)
Else
sArgs = sArgs & "; " & arg
End If
Next
MsgBox methodName & sArgs
performMethod = "done"
End Function
可以被称为:
=performMethod("POST",1,"Test",2)
或
=performMethod("POST",A1:C1,A2:A4,A6,A2:B4)
或
=performMethod("GET",1,A1:B4,"Test")
或
=performMethod("Test",A1:C4)