VBA Véletlenszerű | Hogyan használjuk a Randomize Statement-et?

Véletlenszerű állítás a VBA-ban

A VBA Randomize utasítás egy egyszerű, egyvonalas utasítás, amelyet az RND függvény alkalmazása előtt adunk hozzá. Amikor egy munkafüzet újra megnyílik, a Randomize utasítás új magszámot ad az RND függvénynek, a számítógép rendszeridejétől függően.

Mielőtt a Randomize utasításról beszélnék, hadd mutassak be egy egyszerű RND függvényt a VBA-val.

A „RAND” munkalapfüggvényként a VBA-ban az „RND” is véletlenszerű számokat generál, amelyek nagyobbak, mint 0, de kisebbek, mint 1.

Most nézze meg az „RND” függvény szintaxisát.

[Szám]: Három módon adhatjuk át az érvelést.

  • Ha a számot <0-ként adjuk meg, akkor minden alkalommal ugyanazt a véletlenszámot generálja.
  • Ha a számot 0-ként adjuk meg, akkor megismétli a legutóbb megadott számot.
  • Ha átadjuk a> 0 számot, akkor folyton különböző véletlenszámokat ad, azaz a következő véletlenszámot a sorozatban.

Példa

Például nézze meg az alábbi kódot.

Kód:

 Sub RND_Example () Debug.Print Rnd End Sub 

Amikor a kódot a közvetlen ablakban futtatom, a szám alatt láthatom.

Hasonlóképpen, amikor még háromszor végrehajtom ezt a kódot, láthatom az alábbi számokat.

Most bezárom a munkafüzetet és újra kinyitom.

Most visszatérek a visual basic editor ablakhoz.

Most a közvetlen ablak üres és tiszta.

Most ismét négyszer végrehajtom a kódot, és megnézem, milyen számokat kapunk a közvetlen ablakban.

Ugyanazokat a számokat kaptuk, mint fent.

Ez nem úgy néz ki, mint egy véletlenszerű szám, mert minden alkalommal, amikor újra megnyitjuk a fájlt, hajlamosak vagyunk ugyanazokat a számokat kapni a nullától kezdve.

Tehát hogyan generálunk véletlenszerű számokat, függetlenül attól, hogy a munkafüzet újra kinyílt-e vagy sem?

Használnunk kell a „Randomize” utasítást.

Hogyan kell használni a VBA véletlenszerű állítását?

Ezt a VBA Randomize Excel Template -t ​​letöltheti innen - VBA Randomize Excel Template

1. példa

A véletlenszerű számok megszerzéséhez csak annyit kell tennünk, hogy hozzáadjuk az RND függvény elé az egyszerű egyvonalas „Randomize” -et.

Kód:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Most négyszer futtatom a kódot, és megnézem, mit kapok.

A fenti számokat generálta a helyi ablakomban.

Most bezárom a fájlt, és újra megnyitom a fájlt.

Szokás szerint tiszta lappal indulunk a visual basic ablakban.

Most újra végrehajtom a kódot, és megnézem, hogy ezúttal milyen számokat kapunk.

Azta!!! Ezúttal különböző számokat kaptunk.

Mivel az RND függvény előtt hozzáadtuk a Randomize állítást, a fájl újbóli megnyitásakor különböző véletlenszámokat kapunk.

Úgy néz ki, mint egy véletlenszerű szám, nem igaz?

2. példa

Véletlenszerű számok, nagyobbak, mint egy

Amint láttuk, az „RND” funkció csak 0 és 1 közötti számokat generálhat. De egy véletlenszámnál nagyobb számok előállításához a „RANDOM BETWEEN” -et kell használnunk, amely elérhető a munkalap függvényosztályával.

Tehát egynél nagyobb véletlenszerű számok előállításához az alábbi kódot kell használnunk.

Kód:

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

Most végrehajtom a kódot, és megnézem, mit kapunk.

Így használhatjuk a VBA „Randomize” utasítását véletlenszerű számok előállítására minden egyes alkalommal, amikor újra megnyitjuk az excel fájlt.