Hoe willekeurige getallen genereren in vba?

In VBA kun je verschillende manieren gebruiken om een willekeurig getal in Excel te genereren, en in dit artikel zullen we ze allemaal één voor één bekijken.

RND-functie

Om een willekeurig getal te genereren, is er in VBA een functie genaamd RND . Deze functie betekent willekeurig en wanneer u deze functie in code gebruikt, retourneert deze een willekeurig getal tussen 0 en 1. In RND hoeft u geen enkel argument op te geven.

 Range("A1") = Rnd()

De bovenstaande code gebruikt het om een willekeurig getal in de A1 te krijgen en retourneert 0,705547521.

genereer een willekeurig getal in vba

Maar als je het voor een heel bereik gebruikt, retourneert het hetzelfde willekeurige getal in het hele bereik en dat maakt het null om meer dan eens willekeurige getallen te genereren.

retourneert hetzelfde willekeurige getal

Nu, hier heeft het geen zin om het te gebruiken, nietwaar? Maar er is een oplossing die u kunt gebruiken: FOR NEXT LOOP .

gebruiken voor de volgende lus

In de bovenstaande code heb je een lus die door 10 cellen gaat (één voor één), beginnend bij de geselecteerde cel, en een willekeurig getal toevoegt.

Hier is de volledige code:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Willekeurig getal tussen twee getallen

Als u een willekeurig getal tussen twee gedefinieerde getallen wilt genereren, moet u in dit geval code schrijven met behulp van twee VBA-functies ( RND + INT ). De code voor deze formule zou er als volgt uitzien.

willekeurig-getal-tussen-twee-getallen
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Wanneer u deze macro uitvoert , gebruikt RND het maximum- en minimumaantal dat u hebt ingesteld om het willekeurige getal te genereren, en verwijdert INT de decimaal.

rnd-gebruik-het-max-en-min-nummer

Werkbladfuncties gebruiken in VBA-code om een willekeurig getal te genereren

In VBA hebt u toegang tot werkbladfuncties en kunt u deze gebruiken om een resultaat te krijgen door de argumenten op te geven. Twee spreadsheetfuncties kunnen u helpen een willekeurig getal in het resultaat te krijgen.

  • RandTussen
  • RandTableau

Voordat u deze functies gebruikt, moet u ervoor zorgen dat u de argumenten begrijpt die u moet instellen. In de onderstaande code heb je nu RANDBETWEEN, wat een willekeurig getal tussen twee getallen genereert.

gebruik-randtussen-genereert-een-willekeurig-getal-tussen-twee-getallen
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Hier is het maximale aantal 2000 en het minimumaantal 1000. Op dezelfde manier kunt u de RANDARRAY gebruiken, een dynamische arrayfunctie.

Hier is de code.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
gebruik-randarray-wat-een-dynamische-array-functie is

Als je naar de syntaxis van RANDARRAY kijkt, zul je merken dat je willekeurige getallen in een geheel getalbereik kunt invoeren, wat niet mogelijk is met alle methoden die we hierboven hebben besproken.

randarray-syntaxis

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *