meine Frage mag "blöd" sein, aber Trotzdem: kann eine Funktion mehrere Rückgabewerte liefern?
Wenn ich z.B. in einer Funktion mehrere Variablen berechne, kann ich die irgendwie alle zurückgeben?
Gruß
Alex
Verwendung von Subroutinen: In VBA kannst Du eine Sub
erstellen, die mehrere Werte zurückgibt. Definiere die Variablen, die Du zurückgeben möchtest, und übergebe sie per ByRef
. Beispiel:
Public Sub test5()
Dim a As Integer, b As Integer, c As Integer
Call test6(a, b, c)
MsgBox a
MsgBox b
MsgBox c
End Sub
Public Sub test6(ByRef x As Integer, ByRef y As Integer, ByVal z As Integer)
x = 1
y = 2
z = 3
End Sub
Verwendung von Arrays: Wenn Du eine VBA-Funktion mit mehreren Rückgabewerten
benötigst, kannst Du auch ein Array verwenden. Definiere das Array und gib es als Rückgabewert zurück:
Public Function GetValues() As Variant
Dim values(1 To 3) As Integer
values(1) = 1
values(2) = 2
values(3) = 3
GetValues = values
End Function
Aufruf der Funktion: Um die Werte zu erhalten, kannst Du die Funktion wie folgt aufrufen:
Dim result As Variant
result = GetValues()
MsgBox result(1) ' Gibt 1 zurück
Fehler: Rückgabewert nicht angezeigt: Wenn Du eine VBA-Funktion ohne Rückgabewert
verwendest, stelle sicher, dass Du die Werte korrekt über ByRef
übergibst. Ansonsten bleibt der Rückgabewert leer.
Fehler: Array Rückgabewert funktioniert nicht: Achte darauf, dass Du das Array korrekt definierst und zurückgibst. Verwende Variant
als Datentyp für die Rückgabe der Funktion.
VBA Sub mit Rückgabewert: Eine einfache Methode zur Rückgabe mehrerer Werte besteht darin, eine Sub
zu verwenden, die Werte über ByRef
übergibt.
Excel SVERWEIS mehrere Werte zurückgeben: Wenn Du mehrere Werte aus einer Tabelle zurückgeben möchtest, kannst Du auch die Funktion SVERWEIS
in Kombination mit INDEX
und VERGLEICH
nutzen.
Beispiel für eine Sub mit mehreren Rückgabewerten:
Public Sub CalculateValues()
Dim sum As Integer, product As Integer
CalculateMath 5, 10, sum, product
MsgBox "Summe: " & sum & ", Produkt: " & product
End Sub
Public Sub CalculateMath(ByRef a As Integer, ByRef b As Integer, ByRef s As Integer, ByRef p As Integer)
s = a + b
p = a * b
End Sub
Beispiel für eine Funktion, die ein Array zurückgibt:
Public Function GetStatistics() As Variant
Dim stats(1 To 2) As Double
stats(1) = 75.5 ' Durchschnitt
stats(2) = 100 ' Höchstwert
GetStatistics = stats
End Function
Verwendung von ByVal
und ByRef
: Denke daran, dass ByRef
die Variablen direkt verändert, während ByVal
eine Kopie übergibt. Nutze dies strategisch, um die gewünschten Ergebnisse zu erzielen.
Array-Dimensionen klar definieren: Achte darauf, dass Du die Dimensionen des Arrays korrekt definierst, um Laufzeitfehler zu vermeiden.
1. Kann eine Funktion mehrere Rückgabewerte in Excel VBA liefern?
Ja, das ist möglich, indem Du entweder ein Array zurückgibst oder Werte über ByRef
in einer Sub
übergibst.
2. Wie kann ich mehrere Werte mit SVERWEIS zurückgeben?
Du kannst mehrere Werte zurückgeben, indem Du SVERWEIS
in Kombination mit anderen Funktionen wie INDEX
und VERGLEICH
verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen