Náhodne VBA | Ako používať príkaz Randomize?

Náhodne prehlásenie vo VBA

Príkaz VBA Randomize je jednoduchý jednorázový príkaz, ktorý pridáme pred aplikáciou funkcie RND. Pri každom opätovnom otvorení zošita príkaz Randomize poskytne funkcii RND nové počiatočné číslo v závislosti od systémového času počítača.

Predtým, ako hovorím o príkaze Randomize, dovoľte mi predstaviť vám jednoduchú funkciu RND s VBA.

Ako funkcia listu „RAND“ vygeneruje vo VBA aj „RND“ náhodné čísla, ktoré sú väčšie ako 0, ale menšie ako 1.

Teraz sa pozrite na syntax funkcie „RND“.

[Číslo]: Argument môžeme predložiť tromi spôsobmi.

  • Ak zadáme číslo ako <0, generuje zakaždým rovnaké náhodné číslo.
  • Ak zadáme číslo ako 0, zopakuje sa posledné zadané číslo.
  • Ak zadáme číslo> 0, dáva vám stále rôzne náhodné čísla, tj ďalšie náhodné číslo v poradí.

Príklad

Napríklad si pozrite nasledujúci kód.

Kód:

 Sub RND_Example () Debug.Print Rnd End Sub 

Keď spustím kód v okamžitom okne, vidím nižšie číslo.

Podobne, keď vykonám tento kód ešte 3-krát, vidím nižšie uvedené čísla.

Teraz zavriem zošit a znovu ho otvorím.

Teraz sa vrátim do okna editora jazyka Visual Basic.

Okamžité okno je teraz prázdne a čisté.

Teraz znova vykonám kód štyrikrát a v bezprostrednom okne uvidím, aké čísla dostaneme.

Dostali sme rovnaké čísla, ako sme dostali vyššie.

To nevyzerá ako náhodné číslo, pretože zakaždým, keď znova otvoríme súbor, máme tendenciu získavať rovnaké čísla od nuly.

Ako teda vygenerujeme náhodné čísla bez ohľadu na to, či sa zošit znovu otvoril alebo nie?

Musíme použiť príkaz „Randomize“.

Ako používať vyhlásenie VBA Randomize?

Túto šablónu VBA Randomize Excel si môžete stiahnuť tu - Šablóna VBA Randomize Excel

Príklad č

Aby sme dostali náhodné čísla, musíme do funkcie RND pridať jednoduchý riadok „Randomize“.

Kód:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Teraz spustím kód štyrikrát a uvidím, čo dostanem.

To vygenerovalo vyššie uvedené čísla v mojom miestnom okne.

Teraz zavriem súbor a znova ho otvorím.

Ako obvykle začíname s čistým štítom v okne jazyka Visual Basic.

Teraz znova vykonám kód a uvidím, aké čísla tentokrát dostaneme.

Wow!!! Tentokrát sme dostali rôzne čísla.

Pretože sme pred funkciu RND pridali príkaz Randomize, dostaneme zakaždým, keď súbor znovu otvoríme, rôzne náhodné čísla.

Vyzerá to, že náhodné číslo nie?

Príklad č

Náhodné čísla väčšie ako jedno

Ako sme videli, funkcia „RND“ dokáže generovať iba čísla od 0 do 1. Aby sme však mohli vygenerovať čísla väčšie ako jedno náhodné číslo, musíme použiť „NÁHODNÝ MEDZI“, ktorý je k dispozícii pre triedu funkcií pracovného hárka.

Aby sme teda mohli generovať náhodné čísla väčšie ako jedno, musíme použiť nasledujúci kód.

Kód:

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

Teraz vykonám kód a uvidíme, čo dostaneme.

Takto môžeme použiť príkaz „Randomize“ vo VBA na generovanie náhodných čísel zakaždým, keď znovu otvoríme súbor programu Excel.