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 szólnék, hadd mutassak be egy egyszerű RND függvényt a VBA-val.

A VBA „RAND” munkalapfüggvényeként az „RND” véletlenszerű számokat is 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 érvet.

  • 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életlenszerű számokat ad, azaz a következő véletlen számot a sorozatban.

Példa

Nézze meg például az alábbi kódot.

Kód:

Sub RND_Example () Debug.Print Rnd End Sub

Amikor futtatom a kódot az Azonnali ablakban, láthatom az alábbi számot.

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 hajtom végre 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?

1. példa

Véletlen számok megszerzéséhez mindössze 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életlenszerű számokat kapunk.

Ez véletlenszerű számnak tűnik, nem ???

2. példa

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

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

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életlenszámok előállítására, minden egyes alkalommal, amikor újra megnyitjuk az Excel fájlt.

érdekes cikkek...