VBA Randomize | Hvordan bruke Randomize Statement?

Randomize Statement i VBA

VBA Randomize- setning er en enkel uttalelse som vi legger til før vi bruker RND-funksjonen. Hver gang en arbeidsbok åpnes på nytt, gir Randomize-setningen et nytt frønummer til RND-funksjonen avhengig av datamaskinens systemtid.

Før jeg snakker om Randomize-setningen, la meg introdusere deg for en enkel RND-funksjon med VBA.

Som en regnearkfunksjon “RAND” vil også “RND” i VBA generere tilfeldige tall som er større enn 0, men mindre enn 1.

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

[Antall]: 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.

Eksempel

For et eksempel se koden nedenfor.

Kode:

 Sub RND_Example () Feilsøking. Skriv ut Rnd End Sub 

Når jeg kjører koden i det umiddelbare vinduet, kan jeg se nummeret nedenfor.

På samme måte, når jeg utfører denne koden i 3 ganger til, kan jeg se tallene nedenfor.

Nå vil jeg lukke arbeidsboken og åpne den på nytt.

Nå vil jeg gå tilbake til det visuelle grunnleggende redigeringsvinduet.

Nå er det umiddelbare vinduet tomt og rent.

Nå igjen skal jeg utføre koden fire ganger og se hva er tallene vi får i det umiddelbare vinduet.

Vi fikk de samme tallene som vi fikk over.

Dette ser ikke ut som et tilfeldig tall, for hver gang vi åpner filen på nytt, har vi en tendens til å få de samme tallene fra bunnen av.

Så hvordan genererer vi tilfeldige tall uansett om arbeidsboken åpnes på nytt eller ikke?

Vi må bruke uttalelsen "Randomize".

Hvordan bruke VBA Randomize Statement?

Du kan laste ned denne VBA Randomize Excel-malen her - VBA Randomize Excel Mal

Eksempel 1

For å få tilfeldige tall er alt vi trenger å gjøre å legge til den enkle enlinjeren "Randomize" før RND-funksjonen.

Kode:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Nå skal jeg kjøre koden 4 ganger og se hva jeg får.

Det har generert tallene ovenfor i mitt lokale vindu.

Nå lukker jeg filen og åpner filen igjen.

Som vanlig starter vi med en ren skifer i det visuelle grunnleggende vinduet.

Nå skal jeg igjen utføre koden og se hvilke tall vi får denne gangen.

Wow !!! Vi fikk forskjellige tall denne gangen.

Siden vi la til uttalelsen Randomize før RND-funksjonen, får vi forskjellige tilfeldige tall hver gang vi åpner filen på nytt.

Dette ser ut som et tilfeldig tall er det ikke ???

Eksempel 2

Tilfeldige tall som er større enn ett

Som vi har sett kan “RND” -funksjonen bare generere tall fra 0 til 1. Men for å generere tall som er større enn ett tilfeldig tall, må vi bruke "RANDOM MELLOM" som er tilgjengelig med regnearkfunksjonsklasse.

Så, for å generere tilfeldige tall som er større enn ett, må vi bruke koden nedenfor.

Kode:

 Sub Randomize_2 () Randomize Debug.Print Rnd * 100 End Sub 

Nå skal jeg utføre koden og se hva vi får.

Slik kan vi bruke utsagnet "Randomize" i VBA for å generere tilfeldige tall hver gang vi åpner Excel-filen på nytt.