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 Template1. 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.