VBA 新手。对于用户定义的函数,以下代码有两个问题。我不知道如何通过 ParamArray 传递数组。
1) bool() 的打印类型应该是 8203。但是 test() 的打印类型是 8204,所以它们是空的或无效的。编辑:有人指出 8204 是由于 Variant 类型。
2) 我不确定我是否使用“A(0)(1,1)”正确调用嵌套数组中的元素。我无法在 Test() 函数中打印或调用 A() 中的值。
在单元格公式中:
=Test(bool())
在 VBA 编辑器中:
Function Test(ParamArray A() As Variant)
Debug.Print VarType(A)
Debug.Print A(0)(1,1)
Test = A(0)(1, 1)
End Function
Function bool()
Dim out() As Boolean
Dim u As Integer, v As Integer
ReDim out(1 To 3, 1 To 2)
For v = 1 To 2
For u = 1 To 3
out(u, v) = True
Next u
Next v
Debug.Print VarType(out)
bool = out
End Function
ParamArray 是必要的,我只是没有用这个例子说明原因。