Новый для VBA. У меня две проблемы со следующим кодом для пользовательских функций. Я не могу понять, как передавать массивы через ParamArray.
1) Напечатанный тип из bool () - 8203, как и должно быть. Но напечатанный тип из test () - 8204, поэтому они являются нулевыми или недействительными. Редактировать: было указано, что 8204 - это тип Variant.
2) Я не уверен если я правильно вызываю элементы из вложенных массивов с помощью «A (0) (1,1)». Я не могу печатать или вызывать значения из A () функции Test ().
В формуле ячейки:
=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 необходим, я просто не демонстрирую, почему в этом примере.