VBA slumpmässigt

Slumpmässigt uttalande i VBA

VBA Randomize- uttalande är ett enkelt one-liner-uttalande som vi lägger till innan vi använder RND-funktionen. När en arbetsbok öppnas igen ger Randomize-uttalandet ett nytt frönummer till RND-funktionen beroende på datorns systemtid.

Innan jag pratar om Randomize-uttalandet, låt mig presentera dig för en enkel RND-funktion med VBA.

Som en kalkylfunktion “RAND” genererar “RND” i VBA också slumptal som är större än 0 men mindre än 1.

Ta nu en titt på syntaxen för “RND” -funktionen.

[Number]: Vi kan skicka argumentet på tre sätt.

  • Om vi ​​skickar siffran till <0 genererar det samma slumpmässiga tal varje gång.
  • Om vi ​​skickar siffran som 0, kommer den att upprepa det senaste numret som den har gett.
  • Om vi ​​passerar siffran> 0 fortsätter det att ge dig olika slumpmässiga nummer, dvs nästa slumptal i sekvensen.

Exempel

För ett exempel, se nedanstående kod.

Koda:

 Sub RND_Example () Debug.Print Rnd End Sub 

När jag kör koden i det omedelbara fönstret kan jag se numret nedan.

På samma sätt kan jag se nedanstående siffror när jag kör den här koden ytterligare tre gånger.

Nu stänger jag arbetsboken och öppnar den igen.

Nu kommer jag tillbaka till det visuella grundläggande redigeringsfönstret.

Nu är det omedelbara fönstret tomt och rent.

Nu igen kommer jag att köra koden fyra gånger och se vilka siffror vi får i det omedelbara fönstret.

Vi har samma siffror som ovan.

Det här ser inte ut som ett slumpmässigt tal, för varje gång vi öppnar filen tenderar vi att få samma nummer från början.

Så, hur genererar vi slumptal oavsett om arbetsboken öppnades igen eller inte?

Vi måste använda uttalandet ”Randomize”.

Hur använder jag VBA Randomize Statement?

Du kan ladda ner denna VBA Randomize Excel-mall här - VBA Randomize Excel-mall

Exempel nr 1

För att få slumpmässiga siffror är allt vi behöver göra att lägga till den enkla one-liner "Randomize" före RND-funktionen.

Koda:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Nu ska jag köra koden fyra gånger och se vad jag får.

Det har genererat ovanstående siffror i mitt lokala fönster.

Nu stänger jag filen och öppnar filen igen.

Som vanligt börjar vi med en ren skiffer i det visuella grundfönstret.

Nu kommer jag igen att köra koden och se vilka siffror vi får den här gången.

Wow!!! Vi har olika siffror den här gången.

Eftersom vi lade till uttalandet Slumpmässigt före RND-funktionen får vi olika slumptal varje gång vi öppnar filen igen.

Det här ser ut som ett slumpmässigt tal ???

Exempel 2

Slumpmässiga siffror som är större än en

Som vi har sett kan “RND” -funktionen bara generera nummer från 0 till 1. Men för att generera siffror som är större än ett slumpmässigt tal måste vi använda “RANDOM MELLAN” som finns med kalkylbladets funktionsklass.

Så, för att generera slumpmässiga nummer som är större än ett måste vi använda nedanstående kod.

Koda:

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

Nu ska jag köra koden och se vad vi får.

Så här kan vi använda ”Randomize” -uttrycket i VBA för att generera slumptal varje gång vi öppnar excel-filen igen.