Jak transponować zakres w vba (z przykładem)


Do transpozycji zakresu przy użyciu języka VBA można użyć następującej podstawowej składni:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Ten konkretny przykład dokona transpozycji komórek w zakresie A1:B5 i wyświetli transponowany zakres zaczynając od komórki D1 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Jak transponować zakres w VBA

Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:

Powiedzmy, że chcemy transponować zakres A1:B5 i wyświetlić transponowany zakres, zaczynając od komórki D1 .

W tym celu możemy utworzyć następujące makro:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Należy pamiętać, że transponowany zakres jest wyświetlany począwszy od komórki D1 .

Innymi słowy, wiersze i kolumny są odwrócone.

Aby dokonać transpozycji innego zakresu, po prostu zamień A1:B5 w makrze na inny zakres.

Uwaga : Pełną dokumentację metody transpozycji VBA można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak liczyć komórki zawierające określony tekst
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *