VBA – Array transponieren

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Dezember 9, 2022

In diesem Tutorial lernen Sie, wie Sie ein Array mit VBA transponieren können.

Array transponieren

Diese Funktion wird ein 2-dimensionales Array transponieren:

Function ArrayTransponieren(MeinArray As Variant) As Variant
    Dim x As Long, y As Long
    Dim maxX As Long, minX As Long
    Dim maxY As Long, minY As Long
    
    Dim tempArr As Variant
    
    'Obere und untere Grenzen ermitteln
    maxX = UBound(MeinArray, 1)
    minX = LBound(MeinArray, 1)
    maxY = UBound(MeinArray, 2)
    minY = LBound(MeinArray, 2)
    
    'Neues Temporäres Array erstellen
    ReDim tempArr(minY To maxY, minX To maxX)
    
    'Das Array transponieren
    For x = minX To maxX
        For y = minY To maxY
            tempArr(y, x) = MeinArray(x, y)
        Next y
    Next x
    
    'Array ausgeben
    ArrayTransponieren = tempArr
    
End Function

Sub ArrayTransponierenTest()
    Dim testArr(1 To 3, 1 To 2) As Variant
    Dim AusgabeArr As Variant
    
    'Array-Werte zuweisen
    testArr(1, 1) = "Steve"
    testArr(1, 2) = "Johnson"
    testArr(2, 1) = "Ryan"
    testArr(2, 2) = "Johnson"
    testArr(3, 1) = "Andreas"
    testArr(3, 2) = "Scott"
    
    'Transponierfunktion aufrufen
    AusgabeArr = ArrayTransponieren(testArr)
    
    'Testausgabe
    MsgBox AusgabeArr(2, 1)

End Sub

Um diese Funktion zu testen, rufen Sie die Prozedur ArrayTransponierenTest auf. Hier wird ein Anfangs-Array namens testArr erstellt und AusgabeArr ist das endgültige transponierte Array.

WorksheetFunction.Transpose

Stattdessen möchten Sie vielleicht ein Array in Excel transponieren. Dazu können Sie die Excel-Arbeitsblattfunktion Tanspose verwenden.

Diese Prozedur transponiert ein 2D-Array in einen Excel-Bereich unter Verwendung der Arbeitsblattfunktion Transpose:

Sub TestArrayTransponieren_ArbeitsblattFX()
    Dim maxX As Long, minX As Long
    Dim maxY As Long, minY As Long
    
    'Array erstellen und Werte zuweisen
    Dim MeinArray(1 To 3, 1 To 2) As Variant
    
    MeinArray(1, 1) = "Steve"
    MeinArray(1, 2) = "Johnson"
    MeinArray(2, 1) = "Ryan"
    MeinArray(2, 2) = "Johnson"
    MeinArray(3, 1) = "Andreas"
    MeinArray(3, 2) = "Scott"
    
    'Obere und untere Grenzen ermitteln
    maxX = UBound(MeinArray, 1)
    minX = LBound(MeinArray, 1)
    maxY = UBound(MeinArray, 2)
    minY = LBound(MeinArray, 2)
    
    'Array nach Excel transponieren
    Range("a1").Resize(maxY - minY + 1, maxX - minX + 1).Value = _
      Application.WorksheetFunction.Transpose(MeinArray)

End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples