Generer tilfældige tal ved hjælp af VBA RND-funktion

Indholdsfortegnelse

Excel VBA tilfældige tal

For at generere tilfældige tal i vba har vi en indbygget funktion kaldet RND . Det kræver bare et argument et tal for at generere tilfældige tal, og dette er også en valgfri parameter. Det opretter tilfældige tal, der er større end 0 og mindre end 1.

Dette fungerer nøjagtigt det samme som excel-funktionen “RAND”. Som jeg fortalte i regnearkfunktionen “RAND” også i VBA, kan vi generere tilfældige tal, der er større end 0, men mindre end 1.

Se nu på syntaksen for “RND” -funktionen.

(Nummer): Vi kan videregive argumentet på tre måder.

  • Hvis vi videregiver tallet til <0, genererer det fortsat det samme tilfældige tal hver gang.
  • Hvis vi passerer tallet som 0, gentager det det seneste tal, det har givet.
  • Hvis vi passerer tallet> 0, bliver det ved med at give dig forskellige tilfældige tal, dvs. det næste tilfældige tal i sekvensen.

Hvordan genereres tilfældige tal ved hjælp af VBA-kode?

Eksempel nr. 1

Nu vil vi se det enkle eksempel på brug af “RND” -funktionen. Følg nedenstående trin for at skrive VBA-koden alene.

Trin 1: Erklær variablen som "Heltal" i VBA.

Kode:

Sub Rnd_Example1 () Dim K som heltal End Sub

Trin 2: Tildel nu værdien til variablen “k” gennem “ RND ” -funktionen.

Kode:

Sub Rnd_Example1 () Dim K som heltal K = Rnd () End Sub

Trin 3: Vis værdien, der returneres af variablen “k” i meddelelsesfeltet .

Kode:

Sub Rnd_Example1 () Dim K som heltal K = Rnd () MsgBox K End Sub

Kør nu Excel-makroen og se, hvad resultatet er.

Se hvad der er sket.

Det viser resultatet som 1, hvor “RND” -funktionen kun kan returnere tal, der er større end nul, men mindre end 1.

Du må tænke over, hvad den forkerte ting her er.

Den forkerte ting her er den type datatype, vi har tildelt variablen “k.”

Hvis du ser tilbage på den variabel, vi har deklareret, har vi tildelt datatypen som heltal. Da vi har tildelt variablen som heltal, kan den kun vise hele tal mellem -32768 til 32767.

Når RND returnerer decimaltallet, konverterer VBA decimaltallet til det nærmeste heltal, dvs. 1.

Så for at få formlen til at fungere korrekt, erklær variablen som " Dobbelt ".

"Dobbelt" er datatypen i VBA, der kan indeholde decimalværdier.

Kode:

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

Nu koden og se hvad resultatet er.

Klik på ok og kør endnu en gang og se, hvad resultatet er.

Denne gang fik vi et andet resultat. Da “RND” er en ustabil funktion i naturen, gengiver den forskellige resultater hver gang du udfører koden.

Eksempel 2 - Få det samme tilfældige antal hver gang

Som vi har set i det foregående eksempel e, gengiver “RND” -funktionen resultatet hver gang vi udfører koden. For at få det samme tilfældige tal igen og igen skal vi sende argumentet som nul.

Kode:

Sub Rnd_Example2 () Dim K som dobbelt K = Rnd (0) MsgBox K End Sub

Dette vil producere det samme nummer igen og igen, når vi udfører koden.

Eksempel # 3 - Generer hele tilfældigt nummer

Vi kan også generere hele tal ved hjælp af andre VBA-funktioner eller andre inputnumre. Se f.eks. Nedenstående kode.

Kode:

Sub Rnd_Example3 () Dim K som dobbelt K = 1 + Rnd * 100 MsgBox K End Sub

Denne kode genererer tilfældige heltal med decimaltegn, hver gang vi udfører koden.

Hvis du ser på hele tal uden decimaler, kan vi bruge nedenstående kode.

Kode:

Sub Rnd_Example3 () Dim K som dobbelt K = CInt (1 + Rnd * 100) MsgBox K End Sub

Dette vil fortsætte med at generere hele tal fra 1 til 100.

Interessante artikler...