Generujte náhodná čísla pomocí funkce VBA RND

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.

To funguje 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, pořád 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?

Tuto šablonu Excel s náhodnými čísly VBA si můžete stáhnout zde - Šablona Excel s náhodnými čísly 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“ prostřednictvím 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í desítkové čí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. Protože „RND“ je nestálá funkce, reprodukuje různé výsledky pokaždé, když spustíte kód.

Příklad č. 2 - Získejte pokaždé stejné náhodné číslo

Jak jsme viděli v předchozím příkladu, funkce „RND“ reprodukuje výsledek při každém spuštění kódu. 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é funkce VBA nebo jiných vstupních čísel. Například se podívejte 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.