Vba: een array uit een functie retourneren


U kunt de volgende basissyntaxis gebruiken om een array uit een functie in VBA te retourneren:

 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

Dit specifieke voorbeeld genereert drie willekeurige gehele getallen, slaat deze op in een array en retourneert vervolgens de array als resultaat van de functie genaamd GenerateRandom() .

De volgende voorbeelden laten zien hoe u waarden uit deze functie op twee verschillende manieren kunt retourneren:

  • Retourneer waarden naar een berichtvenster
  • Retourneer waarden in cellen

Laten we gaan!

Voorbeeld 1: Retourneer een array uit een functie en geef de waarden weer in het berichtenvenster

We kunnen de volgende syntaxis gebruiken om een functie te maken met de naam GenerateRandom() die een array van drie willekeurige gehele getallen genereert en vervolgens de gehele getallen in een berichtvenster weergeeft met behulp van de functie MsgBox :

 '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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

VBA-retourtabel van de functie

We kunnen zien dat de functie de willekeurige gehele getallen 96 , 87 en 5 retourneert in een berichtenvenster.

Voorbeeld 2: Retourneer een array uit een functie en geef waarden weer in cellen

We kunnen de volgende syntaxis gebruiken om een functie te maken met de naam GenerateRandom() die een array van drie willekeurige gehele getallen genereert en vervolgens de gehele getallen weergeeft, beginnend in cel A1 in Excel:

 '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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

We kunnen zien dat de functie de willekeurige gehele getallen 96 , 87 en 5 uit cel A1 van ons werkblad retourneert.

Opmerking : om tabelwaarden terug te geven die in een andere cel beginnen, vervangt u eenvoudigweg A1 in de code door een andere celverwijzing.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

Hoe een waarde uit een VBA-functie te retourneren
Hoe u de waarde van een cel uit een ander blad in VBA kunt halen
Hoe IsNumeric te gebruiken om te controleren of cel een getal is in VBA

Einen Kommentar hinzufügen

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