VBA atsitiktinis pasirinkimas Kaip naudoti „Randomize Statement“?

Atsitiktinis pareiškimas VBA

„VBA Randomize“ sakinys yra paprastas vienos linijos pareiškimas, kurį pridedame prieš taikydami RND funkciją. Kiekvieną kartą atidarius darbaknygę „Randomize“ sakinyje RND funkcijai suteikiamas naujas sėklų skaičius, atsižvelgiant į kompiuterio sistemos laiką.

Prieš kalbėdamas apie „Randomize“ teiginį, leiskite man supažindinti jus su paprasta RND funkcija su VBA.

Kaip darbalapio funkcija „RAND“, VBA „RND“ taip pat generuos atsitiktinius skaičius, kurie yra didesni nei 0, bet mažiau nei 1.

Dabar pažvelkite į „RND“ funkcijos sintaksę.

[Skaičius]: Argumentą galime perduoti trimis būdais.

  • Jei skaičių perduosime kaip <0, jis kiekvieną kartą generuos tą patį atsitiktinį skaičių.
  • Jei skaičių perduosime kaip 0, jis pakartos naujausią jo suteiktą skaičių.
  • Jei mes perduodame skaičių> 0, jis suteikia jums skirtingus atsitiktinius skaičius, ty kitą atsitiktinį skaičių sekoje.

Pavyzdys

Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

 Sub RND_Example () derinimas. Spausdinti Rnd End Sub 

Kai paleidžiu kodą tiesioginiame lange, matau žemiau esantį numerį.

Panašiai, kai vykdau šį kodą dar 3 kartus, galiu pamatyti žemiau pateiktus skaičius.

Dabar uždarysiu darbo knygą ir vėl ją atidarysiu.

Dabar grįšiu į „Visual Basic“ redaktoriaus langą.

Dabar tiesioginis langas tuščias ir švarus.

Dabar vėl vykdysiu kodą keturis kartus ir pamatysiu, kokius skaičius gausime tiesioginiame lange.

Gavome tuos pačius skaičius kaip ir aukščiau.

Tai neatrodo atsitiktinis skaičius, nes kiekvieną kartą iš naujo atidarę failą, mes linkę gauti tuos pačius skaičius nuo nulio.

Taigi, kaip generuoti atsitiktinius skaičius, neatsižvelgiant į tai, ar darbaknygė vėl atidaryta, ar ne?

Turime naudoti teiginį „Randomize“.

Kaip naudoti „VBA Randomize Statement“?

Šį „VBA Randomize Excel“ šabloną galite atsisiųsti čia - „VBA Randomize Excel“ šablonas

1 pavyzdys

Norint gauti atsitiktinius skaičius, viskas, ką turime padaryti, tai prieš RND funkciją pridėti paprastą vienos linijos „Randomize“.

Kodas:

 Sub Randomize_1 () Atsitiktinai derinkite. Spausdinti Rnd End Sub 

Dabar aš paleisiu kodą 4 kartus ir pamatysiu, ką gausiu.

Tai sugeneravo aukščiau nurodytus skaičius mano vietiniame lange.

Dabar uždarysiu failą ir dar kartą atidarysiu failą.

Kaip įprasta, mes pradedame nuo švarios lentos „Visual Basic“ lange.

Dabar vėl vykdysiu kodą ir pažiūrėsiu, kokius skaičius gausime šį kartą.

Oho!!! Šį kartą gavome skirtingus skaičius.

Kadangi prieš funkciją RND pridėjome teiginį Randomize, kiekvieną kartą iš naujo atidarę failą, gauname skirtingus atsitiktinius skaičius.

Tai atrodo atsitiktinis skaičius, ar ne ???

2 pavyzdys

Atsitiktiniai skaičiai, didesni už vieną

Kaip matėme, „RND“ funkcija gali generuoti tik skaičius nuo 0 iki 1. Tačiau norint sugeneruoti didesnius nei vieno atsitiktinio skaičiaus skaičius, reikia naudoti „RANDOM BETWEEN“, kurį galima gauti su darbalapio funkcijų klase.

Taigi, norėdami sugeneruoti atsitiktinius skaičius, didesnius nei vienas, turime naudoti žemiau pateiktą kodą.

Kodas:

 Sub Randomize_2 () Atsitiktinai derinkite. Spausdinti Rnd * 100 End Sub 

Dabar įvykdysiu kodą ir pamatysiu, ką gausime.

Panašiai, mes galime naudoti „Randomize“ sakinį VBA, kad generuotume atsitiktinius skaičius kiekvieną kartą, kai mes iš naujo atidarome „Excel“ failą.