VBA slumpmässigt - Hur använder jag Randomize Statement?

Innehållsförteckning

Slumpmässigt uttalande i VBA

VBA Randomize- uttalande är ett enkelt one-liner-uttalande som vi lägger till innan vi tillämpar 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 uttalandet Randomize, låt mig presentera dig för en enkel RND-funktion med VBA.

Som en kalkylfunktion "RAND" i VBA kommer "RND" också att generera 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 som <0, genererar det samma slumpmässiga tal varje gång.
  • Om vi ​​skickar siffran som 0, kommer den att upprepa den senaste siffran den har gett.
  • Om vi ​​passerar siffran> 0 fortsätter det att ge dig olika slumptal, dvs. nästa slumptal i sekvensen.

Exempel

Titta till exempel på koden nedan.

Koda:

Sub RND_Example () Debug.Print Rnd End Sub

När jag kör koden i Omedelbart-fönstret kan jag se numret nedan.

På samma sätt, när jag kör den här koden tre gånger till, kan jag se siffrorna nedan.

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

Nu kommer jag tillbaka till fönstret för Visual Basic Editor.

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 igen 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?

Exempel 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, eller hur ???

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 nummer, måste vi använda "RANDOM MELLAN", som är tillgängligt med kalkylbladets funktionsklass.

Så, för att generera slumpmässiga siffror som är större än ett måste vi använda koden nedan.

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 uttalandet "Randomize" i VBA för att generera slumptal varje gång vi öppnar excel-filen igen.

Intressanta artiklar...