Vba: so geben sie ein array von einer funktion zurück
Sie können die folgende grundlegende Syntax verwenden, um ein Array von einer Funktion in VBA zurückzugeben:
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
'generate three random integers and store them in array
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
'return array as a result of the function
GenerateRandom = RandValues
End Function
Dieses spezielle Beispiel generiert drei zufällige Ganzzahlen, speichert sie in einem Array und gibt das Array dann als Ergebnis der Funktion namens GenerateRandom() zurück.
Die folgenden Beispiele zeigen, wie Werte von dieser Funktion auf zwei verschiedene Arten zurückgegeben werden:
- Werte an ein Meldungsfeld zurückgeben
- Rückgabewerte in Zellen
Lass uns gehen!
Beispiel 1: Ein Array von einer Funktion zurückgeben und die Werte im Meldungsfeld anzeigen
Mit der folgenden Syntax können wir eine Funktion namens GenerateRandom() erstellen, die ein Array aus drei zufälligen Ganzzahlen generiert und die Ganzzahlen dann mithilfe der MsgBox- Funktion in einem Meldungsfeld anzeigt:
'define function to generate array of three random integers
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
GenerateRandom = RandValues
End Function
'define sub to display values from function in a message box
SubDisplayRandom ()
Dim WS As Worksheet
Dim RandomValues() As Integer
Dim i As Integer
Set WS = Worksheets(" Sheet1 ")
RandomValues = GenerateRandom()
j = " Array values: "
For i = 0 To 2
j = (j & RandomValues(i) & " ")
Next i
MsgBox j
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Wir können sehen, dass die Funktion die zufälligen Ganzzahlen 96 , 87 und 5 in einem Meldungsfeld zurückgibt.
Beispiel 2: Ein Array von einer Funktion zurückgeben und Werte in Zellen anzeigen
Mit der folgenden Syntax können wir eine Funktion namens GenerateRandom() erstellen, die ein Array aus drei zufälligen Ganzzahlen generiert und dann die Ganzzahlen beginnend in Zelle A1 in Excel anzeigt:
'define function to generate array of three random integers
Function GenerateRandom() As Integer()
Dim RandValues(2) As Integer
RandValues(0) = Int(Rnd * 100)
RandValues(1) = Int(Rnd * 100)
RandValues(2) = Int(Rnd * 100)
GenerateRandom = RandValues
End Function
'define sub to display values from function starting in cell A1
SubDisplayRandom ()
Dim WS As Worksheet
Dim RandomValues() As Integer
Dim i As Integer
Set WS = Worksheets(" Sheet1 ")
RandomValues = GenerateRandom()
For i = 0 To 2
WS.Range(" A1 ").Offset(i, 0).Value = RandomValues(i)
Next i
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Wir können sehen, dass die Funktion die zufälligen Ganzzahlen 96 , 87 und 5 aus Zelle A1 unseres Arbeitsblatts zurückgibt.
Hinweis : Um Tabellenwerte zurückzugeben, die in einer anderen Zelle beginnen, ersetzen Sie einfach A1 im Code durch einen anderen Zellbezug.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
So geben Sie einen Wert von einer VBA-Funktion zurück
So erhalten Sie den Wert einer Zelle aus einem anderen Blatt in VBA
So verwenden Sie IsNumeric, um in VBA zu überprüfen, ob die Zelle eine Zahl ist