编辑:解决方案- 请参阅下面的原始问题
在将 {1,2,3} 这样的数组传递给 UDF 时,我发现需要考虑两件事:
区域设置 - 请参阅答案 1。德国系统上的列表分隔符(通常)是“;” 因此我需要使用 {1 ; 2 ; 3}。
传递的数组在函数中显示为二维数组。因此,它的第 n 个元素必须定位为 myArray(n, 1 )。忽略这给了我#VALUE!错误。
因此,一个简短的“选择案例”-UDF 可能如下所示:
Function SelCase(a1, a2, a3)
For i = 1 To UBound(a2)
If a2(i, 1) = a1 Then SelCase = a3(i, 1)
Next
End Function
Run Code Online (Sandbox Code Playgroud)
称为(德语语言环境!):
=SelCase(A1;{1;2;3};{"a";"b";"c"})
Run Code Online (Sandbox Code Playgroud)
根据 A1 给出结果“a”、“b”或“c”,结果为 1、2 或 3。
更详细的“选择案例”-UDF 可以在这里找到。
原问题:
我想将像 {1,2,3,4} 这样的数组传递给 Excel 2002 中的用户定义函数 - 但没有设法找到执行此操作的方法。
我使用的是德语版本,所以“,”是我的小数分隔符,也分隔水平(1D-)数组中的值- 编辑:这是错误的 -,而“;” 据我所知,将公式中调用的函数中的参数与工作表分开,并且还分隔垂直(一维)数组中的值。
我尝试过类似的东西
Function test(myArray)
Function …Run Code Online (Sandbox Code Playgroud)