VBA Randomize | Hvordan bruges Randomize Statement?

Tilfældig erklæring i VBA

VBA Randomize- sætning er en simpel one-liner-sætning, som vi tilføjer, inden vi anvender RND-funktionen. Hver gang en projektmappe åbnes igen, giver Randomize-sætningen et nyt frønummer til RND-funktionen afhængigt af computerens systemtid.

Før jeg taler om Randomize-udsagnet, lad mig introducere dig til en simpel RND-funktion med VBA.

Som en regnearksfunktion “RAND” vil også i VBA “RND” 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 videregiver tallet> 0, giver det dig forskellige tilfældige tal, dvs. det næste tilfældige tal i sekvensen.

Eksempel

For et eksempel se nedenstående kode.

Kode:

 Sub RND_Example () Fejlfinding. Print Rnd End Sub 

Når jeg kører koden i det øjeblikkelige vindue, kan jeg se nedenstående nummer.

På samme måde kan jeg se nedenstående numre, når jeg udfører denne kode yderligere 3 gange.

Nu lukker jeg projektmappen og genåbner den.

Nu vil jeg gå tilbage til det visuelle grundlæggende editor-vindue.

Nu er det øjeblikkelige vindue tomt og rent.

Nu igen udfører jeg koden fire gange og ser, hvad er de numre, vi får i det øjeblikkelige vindue.

Vi har de samme tal som vi fik ovenfor.

Dette ligner ikke et tilfældigt tal, fordi hver gang vi genåbner filen, har vi tendens til at få de samme numre fra bunden.

Så hvordan genererer vi tilfældige tal, uanset om projektmappen genåbnes eller ej?

Vi er nødt til at bruge udsagnet "Randomize".

Hvordan bruges VBA tilfældig erklæring?

Du kan downloade denne VBA Randomize Excel-skabelon her - VBA Randomize Excel Template

Eksempel nr. 1

For at få tilfældige tal er alt, hvad vi skal gøre, at tilføje den enkle one-liner "Randomize" før RND-funktionen.

Kode:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Nu kører jeg koden 4 gange og ser hvad jeg får.

Det har genereret ovenstående tal i mit lokale vindue.

Nu lukker jeg filen og genåbner filen igen.

Som normalt starter vi med en ren skifer i det visuelle grundvindue.

Nu vil jeg igen udføre koden og se, hvilke tal vi får denne gang.

Wow !!! Vi har forskellige numre denne gang.

Da vi tilføjede udsagnet Randomize før RND-funktionen, får vi forskellige tilfældige tal hver gang vi genåbner filen.

Dette ligner et tilfældigt tal er det ikke ???

Eksempel 2

Tilfældige tal større end en

Som vi har set kan “RND” -funktionen kun generere tal fra 0 til 1. Men for at generere tal, der er større end et tilfældigt tal, skal vi bruge “RANDOM MELLEM”, som er tilgængelig med regnearkets funktionsklasse.

Så for at generere tilfældige tal, der er større end et, skal vi bruge nedenstående kode.

Kode:

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

Nu vil jeg udføre koden og se, hvad vi får.

På denne måde kan vi bruge “Randomize” -erklæringen i VBA til at generere tilfældige tal hver gang vi genåbner excel-filen.