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:

VBA-Rückgabetabelle der Funktion

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert