Нечто подобное
Function TransposeArray1D(ByVal arr As Variant) As Variant
Dim tempArray As Variant
ReDim tempArray(LBound(arr, 1) To UBound(arr, 1), LBound(arr(0)) To UBound(arr(0)))
For y = LBound(arr, 1) To UBound(arr, 1)
For x = LBound(arr(0)) To UBound(arr(0))
tempArray(y, x) = arr(y)(x)
Next x
Next y
TransposeArray1D = tempArray
End Function
Function TransposeArray2D(ByVal arr As Variant) As Variant
Dim tempArray As Variant
ReDim tempArray(LBound(arr, 2) To UBound(arr, 2), LBound(arr, 1) To UBound(arr, 1))
For x = LBound(arr, 2) To UBound(arr, 2)
For y = LBound(arr, 1) To UBound(arr, 1)
tempArray(x, y) = arr(y, x)
Next y
Next x
TransposeArray2D = tempArray
End Function
Function TransposeArrayIndex(ByVal arr As Variant, ByVal nTh As Long) As Variant
Dim tempArray As Variant
ReDim tempArray(0 To UBound(arr, 2))
For y = LBound(arr, 2) To UBound(arr, 2)
tempArray(y) = arr(nTh, y)
Next y
TransposeArrayIndex = tempArray
End Function