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!Learn More!