Rückkehr in VBA-Code-Beispiele

VBA – Array-Rückgabefunktion

In diesem Artikel wird gezeigt, wie man mit einer VBA-Funktion ein Array zurückgibt.

VBA – Funktion zur Array-Rückgabe

Wenn Sie Funktionen zur Rückgabe von Arrays verwenden, empfehle ich dringend, Arrays mit dem Typ Variant zu deklarieren:

   Function ArrayRueckgabe() As Variant

   End Function

Variant-Arrays sind einfacher zu handhaben. Die Größe des Arrays ist weniger wichtig.

Beispiele für Array-Rückgaben durch Funktionen

Hier ist ein Beispiel für eine Funktion, die ein Array zurückgibt:

Function ArrayRueckgabe() As Variant
    Dim tempArr As Variant
    
    'Neues Temp-Array erstellen
    ReDim tempArr(1 To 3, 1 To 2)
    
    'Array-Werte zuweisen
    tempArr(1, 1) = "Steve"
    tempArr(1, 2) = "Johnson"
    tempArr(2, 1) = "Ryan"
    tempArr(2, 2) = "Johnson"
    tempArr(3, 1) = "Andreas"
    tempArr(3, 2) = "Scott"
    
    'Array ausgeben
    ArrayRueckgabe = tempArr
    
End Function
 
Sub TestArrayRueckgabe()
    Dim ausgabeArr As Variant
    
    'Rückgabefunktion aufrufen
    ausgabeArr = ArrayRueckgabe()
    
    'Testausgabe
    MsgBox ausgabeArr(2, 1)
 
End Sub

Beachten Sie, dass wir die Arrays mit Datentyp = variant deklariert haben, um Größenprobleme zu vermeiden. Dieses Beispiel nimmt ein Array als Eingabe, transponiert es und gibt das neue transponierte Array aus:

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 TempArray erstellen
    ReDim tempArr(minX To maxX, minY To maxX)
    
    'Transponieren des Arrays
    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 TestArrayTransponieren()
    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

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!