Náhodná čísla aplikace Excel VBA
Pro generování náhodných čísel ve vba máme vestavěnou funkci nazvanou RND . Vygeneruje náhodná čísla pouze argument číslo a toto je také volitelný parametr. Vytvoří náhodná čísla, která jsou větší než 0 a menší než 1.
Funguje to přesně stejně jako funkce aplikace Excel „RAND“. Jak jsem řekl ve funkci listu „RAND“ i ve VBA, můžeme generovat náhodná čísla, která jsou větší než 0, ale menší než 1.
Nyní se podívejme na syntaxi funkce „RND“.

(Číslo): Argument můžeme předat třemi způsoby.
- Pokud číslo předáme jako <0, generuje pokaždé stejné náhodné číslo.
- Pokud číslo předáme jako 0, bude opakovat nejnovější číslo, které zadalo.
- Pokud předáme číslo> 0, stále vám dává různá náhodná čísla, tj. Další náhodné číslo v pořadí.

Jak generovat náhodná čísla pomocí kódu VBA?
Příklad č. 1
Nyní uvidíme jednoduchý příklad použití funkce „RND“. Postupujte podle níže uvedených kroků a sami napíšete kód VBA.
Krok 1: Deklarujte proměnnou jako „Integer“ ve VBA.
Kód:
Sub Rnd_Example1 () Dim K jako celé číslo End Sub

Krok 2: Nyní přiřaďte hodnotu proměnné „k“ pomocí funkce „ RND “.
Kód:
Sub Rnd_Example1 () Dim K As Integer K = Rnd () End Sub

Krok 3: Zobrazit hodnotu vrácenou proměnnou „k“ v okně se zprávou .
Kód:
Sub Rnd_Example1 () Dim K As Integer K = Rnd () MsgBox K End Sub

Nyní spusťte makro aplikace Excel a podívejte se, jaký je výsledek.

Podívej, co se stalo.
Zobrazuje výsledek jako 1, kde funkce „RND“ může vracet pouze čísla, která jsou větší než nula, ale menší než 1.
Určitě musíte přemýšlet o tom, co je špatně.
Špatnou věcí je druh datového typu, který jsme přiřadili proměnné „k“.
Pokud se podíváte zpět na proměnnou, kterou jsme deklarovali, přiřadili jsme datový typ jako Integer. Protože jsme proměnnou přiřadili celé číslo, může zobrazit pouze celá čísla mezi -32768 až 32767.
Kdykoli RND vrátí desetinné číslo, VBA převede desítkové číslo na nejbližší celé číslo, tj. 1.
Aby vzorec fungoval správně, deklarujte proměnnou jako „ Double “.
„Double“ je datový typ ve VBA, který může obsahovat desítkové hodnoty.
Kód:
Sub Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub

Nyní kód a uvidíte, jaký je výsledek.

Klikněte na ok a spusťte ještě jednou a podívejte se, jaký je výsledek.

Tentokrát jsme dostali jiný výsledek. Jelikož je „RND“ nestálá funkce, reprodukuje při každém spuštění kódu různé výsledky.
Příklad č. 2 - Získejte pokaždé stejné náhodné číslo
Jak jsme viděli v předchozím příkladu e, funkce „RND“ reprodukuje výsledek pokaždé, když spustíme kód. Abychom dostali stejné náhodné číslo, musíme znovu a znovu předat argument jako nulu.
Kód:
Sub Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub
Když spustíme kód, bude se znovu a znovu vytvářet stejné číslo.
Příklad č. 3 - Generování celého náhodného čísla
Můžeme také generovat celá čísla pomocí jiných funkcí VBA nebo jiných vstupních čísel. Podívejte se například na níže uvedený kód.
Kód:
Sub Rnd_Example3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub
Tento kód vygeneruje náhodná celá čísla s desetinnými čárkami pokaždé, když kód spustíme.
Pokud se díváte na celá čísla bez desetinných míst, můžeme použít níže uvedený kód.
Kód:
Sub Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub
Tím se bude generovat celá čísla od 1 do 100.