Generuokite atsitiktinius skaičius naudodami VBA RND funkciją

„Excel VBA“ atsitiktiniai skaičiai

Norėdami generuoti atsitiktinius skaičius vba, turime integruotą funkciją, vadinamą RND . Norint sugeneruoti atsitiktinius skaičius, reikia tik argumento, o tai taip pat yra neprivalomas parametras. Tai sukurs atsitiktinius skaičius, kurie yra didesni nei 0 ir mažesni nei 1.

Tai veikia lygiai taip pat, kaip ir „Excel“ funkcija „RAND“. Kaip sakiau darbalapio funkcijoje „RAND“, VBA taip pat galime generuoti 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.

Kaip generuoti atsitiktinius skaičius naudojant VBA kodą?

Šį VBA atsitiktinių numerių „Excel“ šabloną galite atsisiųsti čia - „VBA Random Numbers Excel“ šablonas

1 pavyzdys

Dabar pamatysime paprastą „RND“ funkcijos pavyzdį. Norėdami savarankiškai parašyti VBA kodą, atlikite toliau nurodytus veiksmus.

1 veiksmas: paskelbkite kintamąjį kaip „Sveikasis skaičius“ VBA

Kodas:

 Sub Rnd_Pavyzdys1 () Dim K kaip sveikasis galas Sub 

2 žingsnis: Dabar priskirkite reikšmę kintamajam „k“ per „ RND “ funkciją.

Kodas:

 Rnd_pavyzdys1 () Dim K kaip sveikasis skaičius K = Rnd () End Sub 

3 žingsnis: pranešimo laukelyje parodykite kintamojo „k“ grąžintą vertę .

Kodas:

 Rnd_pavyzdys1 () Dim K kaip sveikasis skaičius K = Rnd () MsgBox K End Sub 

Dabar paleiskite „Excel“ makrokomandą ir sužinokite, koks yra rezultatas.

Pažiūrėk, kas nutiko.

Rezultatas rodomas kaip 1, kai funkcija „RND“ gali pateikti tik didesnius nei nulis, bet mažesnius nei 1 skaičius.

Jūs tikriausiai galvojate apie tai, kas čia ne taip.

Neteisingas dalykas yra duomenų tipas, kurį priskyrėme kintamajam „k“.

Pažvelgus į kintamąjį, kurį paskelbėme, duomenų tipą priskyrėme sveikuoju skaičiumi. Kadangi kintamąjį priskyrėme kaip sveikąjį skaičių, sveiki skaičiai gali būti rodomi tik nuo -32768 iki 32767.

Kai RND grąžina dešimtainį skaičių, VBA dešimtainį skaičių paverčia artimiausiu sveikuoju skaičiumi, ty 1.

Taigi, kad formulė veiktų tinkamai, deklaruokite kintamąjį kaip „ Dvigubą “.

„Dvigubas“ yra duomenų tipas VBA, kuriame gali būti dešimtainės reikšmės.

Kodas:

 Rnd_pavyzdys1 () Dim K As Double K = Rnd () MsgBox K End Sub 

Dabar kodas ir pažiūrėkite, koks rezultatas.

Spustelėkite „Gerai“ ir paleiskite dar kartą ir pažiūrėkite, koks rezultatas.

Šį kartą gavome kitokį rezultatą. Kadangi „RND“ yra nepastovi funkcija, ji kiekvieną kartą, kai vykdote kodą, atkuria skirtingus rezultatus.

2 pavyzdys - kiekvieną kartą gaukite tą patį atsitiktinį skaičių

Kaip matėme ankstesnį pavyzdį, „RND“ funkcija atkuria rezultatą kiekvieną kartą, kai vykdome kodą. Norėdami vėl ir vėl gauti tą patį atsitiktinį skaičių, argumentą turime perduoti kaip nulį.

Kodas:

 Rnd_pavyzdys2 () Dim K As Double K = Rnd (0) MsgBox K End Sub 

Tai padarys tą patį numerį vėl ir vėl, kai vykdysime kodą.

3 pavyzdys - sugeneruokite visą atsitiktinį skaičių

Taip pat galime generuoti sveikus skaičius naudodami kitą VBA funkciją arba kitus įvesties skaičius. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

 Rnd_pavyzdys3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub 

Šis kodas generuos atsitiktinius sveikus skaičius su dešimtainiais kableliais kiekvieną kartą, kai vykdome kodą.

Jei žiūrite sveikus skaičius be dešimtainių taškų, galime naudoti žemiau pateiktą kodą.

Kodas:

 Rnd_pavyzdys3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub 

Taip bus generuojami sveiki skaičiai nuo 1 iki 100.


$config[zx-auto] not found$config[zx-overlay] not found