' evaluate the transposed matrix'' a transposed matrix is the array you get when' you "rotate" a bi-dimensional arrayFunction TransposeMatrix(arr() As Double) As Double() Dim startRow As Long, startCol As Long Dim endRow As Long, endCol As Long Dim r As Long, c As Long Dim tmp As Double ' get size of original matrix startRow = LBound(arr) endRow = UBound(arr) startCol = LBound(arr, 2) endCol = UBound(arr, 2) ' prepare the result matrix ReDim res(startCol To endCol, startRow To endRow) As Double ' transpose the matrix For r = startRow To endRow For c = startCol To endCol res(c, r) = arr(r, c) Next Next ' return the transposed result TransposeMatrix = resEnd Function