Generer tilfeldige tall ved hjelp av VBA RND-funksjon

Innholdsfortegnelse

Excel VBA tilfeldige tall

For å generere tilfeldige tall i vba har vi en innebygd funksjon kalt RND . Det krever bare et argument et tall for å generere tilfeldige tall, og dette er også en valgfri parameter. Det vil skape tilfeldige tall som er større enn 0 og mindre enn 1.

Dette fungerer nøyaktig det samme som excel-funksjonen “RAND”. Som jeg fortalte i regnearkfunksjonen “RAND” også i VBA, kan vi generere tilfeldige tall som er større enn 0, men mindre enn 1.

Ta en titt på syntaksen til “RND” -funksjonen.

(Nummer): Vi kan formidle argumentet på tre måter.

  • Hvis vi passerer tallet som <0, fortsetter det å generere det samme tilfeldige tallet hver gang.
  • Hvis vi passerer tallet som 0, vil det gjenta det siste tallet det har gitt.
  • Hvis vi passerer tallet> 0, fortsetter det å gi deg forskjellige tilfeldige tall, dvs. neste tilfeldige tall i sekvensen.

Hvordan genererer jeg tilfeldige tall ved hjelp av VBA-kode?

Eksempel 1

Nå vil vi se det enkle eksemplet på bruk av “RND” -funksjonen. Følg trinnene nedenfor for å skrive VBA-koden på egen hånd.

Trinn 1: Erklær variabelen som "Heltall" i VBA.

Kode:

Sub Rnd_Example1 () Dim K Som Integer End Sub

Trinn 2: Nå tilordne verdien til variabelen “k” gjennom “ RND ” -funksjonen.

Kode:

Sub Rnd_Example1 () Dim K Som Integer K = Rnd () End Sub

Trinn 3: Vis verdien som returneres av variabelen “k” i meldingsboksen .

Kode:

Sub Rnd_Example1 () Dim K Som Integer K = Rnd () MsgBox K End Sub

Kjør nå Excel-makroen og se hva resultatet er.

Se hva som har skjedd.

Det viser resultatet som 1 der “RND” -funksjonen bare kan returnere tall som er større enn null, men mindre enn 1.

Du må tenke på hva som er galt her.

Den gale tingen her er typen datatype vi har tilordnet variabelen "k."

Hvis du ser tilbake på variabelen vi har deklarert, har vi tilordnet datatypen Heltall. Siden vi har tilordnet variabelen som heltall, kan den bare vise hele tallene mellom -32768 og 32767.

Når RND returnerer desimaltallet, konverterer VBA desimaltallet til nærmeste heltall, dvs. 1.

Så, for å få formelen til å fungere skikkelig, erklær variabelen som " Dobbel ".

"Dobbelt" er datatypen i VBA som kan ha desimalverdier.

Kode:

Sub Rnd_Example1 () Dim K Som Double K = Rnd () MsgBox K End Sub

Nå koden og se hva resultatet er.

Klikk på ok og løp en gang til og se hva resultatet er.

Denne gangen fikk vi et annet resultat. Siden “RND” er en ustabil funksjon i naturen, gjengir den forskjellige resultater hver gang du utfører koden.

Eksempel 2 - Få samme tilfeldige nummer hver gang

Som vi har sett i forrige eksempel e, gjengir “RND” -funksjonen resultatet hver gang vi utfører koden. For å få det samme tilfeldige tallet, igjen og igjen, må vi passere argumentet som null.

Kode:

Sub Rnd_Example2 () Dim K Som Double K = Rnd (0) MsgBox K End Sub

Dette vil gi samme nummer igjen og igjen når vi utfører koden.

Eksempel # 3 - Generer hele tilfeldig nummer

Vi kan også generere hele tall ved å bruke andre VBA-funksjoner eller andre inngangstall. Se for eksempel på koden nedenfor.

Kode:

Sub Rnd_Example3 () Dim K Som Double K = 1 + Rnd * 100 MsgBox K End Sub

Denne koden vil generere tilfeldige hele tall med desimalpoeng hver gang vi utfører koden.

Hvis du ser på hele tallene uten desimaler, kan vi bruke koden nedenfor.

Kode:

Sub Rnd_Example3 () Dim K Som Double K = CInt (1 + Rnd * 100) MsgBox K End Sub

Dette vil fortsette å generere hele tallene fra 1 til 100.

Interessante artikler...