Funkcja Transponuj2   strona główna:
A po co ten Excel ;-)
 
 
Public Function Transponuj2(tabl As Variant) As Variant  
    Dim X As Long, Y As Long  
    Dim Max2 As Long, Max1 As Long  
    Dim Min2 As Long, Min1 As Long  
 
    Min1 = LBound(tabl, 1): Max1 = UBound(tabl, 1)  
    Min2 = LBound(tabl, 2): Max2 = UBound(tabl, 2)  
 
    ReDim tempTabl(Min2 To Max2, Min1 To Max1)  
    For X = Min2 To Max2  
        For Y = Min1 To Max1  
            tempTabl(X, Y) = tabl(Y, X)  
        Next Y  
    Next X  
 
    Transponuj2 = tempTabl  
End Function  
 
Funkcja ta to alternatywa do funkcji Arkuszowej TRANSPONUJ którą nieraz nie można wykorzystać przez wzgląd na jej ograniczenia:  
 
     Tajan (MVP) >> „należy pamiętać o ograniczeniach funkcji Transpose:  
                            - Tablica nie może zawierać elementów dłuższych niż 255 znaków.  
                            - Tablica nie może zawierać wartości Null.  
                            - Tablica nie może zawierać więcej niż 5461 elementów.”    
 
Choć te ograniczenia mogą się komuś wydawać nieistotne, to jednak nie możemy zakładać, że utworzona tablica lub jej elementy   
nie przekroczą tych granic. Napisałem więc swoją funkcję – wolną od tych ograniczeń. I choć jak każda UDF jest znacznie   
wolniejsza od „wbudowanych” funkcji Excel’a to jednak poruszanie się w tablicach, bez odwołań do zakresu arkusza działa w bardzo  
przyzwoitym tempie.