Luo satunnaislukuja käyttämällä VBA RND -toimintoa

Excel VBA -numerot

Voit luoda satunnaisia numeroita VBA meillä on sisäänrakennettu toiminto nimeltään RND . Satunnaislukujen luominen vaatii vain argumentilta numeron, ja tämä on myös valinnainen parametri. Se luo satunnaislukuja, jotka ovat suurempia kuin 0 ja pienempiä kuin 1.

Tämä toimii täsmälleen samalla tavalla kuin excel-toiminto “RAND”. Kuten kerroin taulukkofunktiossa "RAND", myös VBA: ssa voimme tuottaa satunnaislukuja, jotka ovat suurempia kuin 0, mutta alle 1.

Katsokaa nyt ”RND” -toiminnon syntaksia.

[Luku]: Voimme välittää argumentin kolmella tavalla.

  • Jos välitämme luvun <0, se tuottaa jatkuvasti saman satunnaisluvun joka kerta.
  • Jos välitämme numeron 0, se toistaa viimeisimmän antamansa numeron.
  • Jos välitämme luvun> 0, se antaa sinulle jatkuvasti erilaisia ​​satunnaislukuja, eli sarjan seuraavan satunnaisluvun.

Kuinka luoda satunnaislukuja VBA-koodilla?

Voit ladata tämän VBA-satunnaislukujen Excel-mallin täältä - VBA-satunnaislukujen Excel-malli

Esimerkki 1

Nyt näemme yksinkertaisen esimerkin “RND” -toiminnon käytöstä. Kirjoita alla olevat vaiheet kirjoittamaan VBA-koodi itse.

Vaihe 1: Ilmoita muuttuja kokonaisluvuksi VBA: ssa

Koodi:

 Sub Rnd_Example1 () Dim K kokonaisloppuna Sub Sub 

Vaihe 2: Määritä nyt arvo muuttujalle “k” RND- toiminnon avulla.

Koodi:

 Osa Rnd_esimerkki1 () Dim K kokonaislukuna K = Rnd () End Sub 

Vaihe 3: Näytä muuttujan "k" palauttama arvo viestiruudussa .

Koodi:

 Osa Rnd_esimerkki1 () Dim K kokonaislukuna K = Rnd () MsgBox K End Sub 

Suorita nyt Excel-makro ja katso tulos.

Katso mitä on tapahtunut.

Se näyttää tuloksen 1, jossa "RND" -toiminto voi palauttaa vain numerot, jotka ovat suurempia kuin nolla, mutta alle 1.

Sinun on mietittävä, mikä väärä asia tässä on.

Tässä väärä asia on tietotyyppi, jonka olemme määrittäneet muuttujalle “k”.

Jos katsot muuttujaa, jonka olemme ilmoittaneet, olemme antaneet tietotyypiksi kokonaisluvun. Koska olemme antaneet muuttujalle kokonaisluvun, se voi näyttää vain kokonaisluvut välillä -32768 - 32767.

Aina kun RND palauttaa desimaaliluvun, VBA muuntaa desimaaliluvun lähimpään kokonaislukuun eli 1.

Joten, jotta kaava toimisi oikein, ilmoita muuttuja " Double ".

"Double" on VBA: n tietotyyppi, joka voi pitää desimaaliarvoja.

Koodi:

 Alirnd_esimerkki1 () Dim K kaksinkertaiseksi K = Rnd () MsgBox K Lopeta alaruutu 

Nyt koodi ja katso mitä tulos on.

Napsauta ok ja suorita vielä kerran ja katso mitä tulos on.

Tällä kertaa saimme toisen tuloksen. Koska “RND” on luonnossa haihtuva toiminto, se tuottaa erilaisia ​​tuloksia aina, kun suoritat koodin.

Esimerkki # 2 - Hanki sama satunnainen numero joka kerta

Kuten olemme nähneet edellisessä esimerkissä, “RND” -toiminto tuottaa tuloksen joka kerta, kun suoritamme koodin. Jotta saisimme saman satunnaisluvun, meidän on välitettävä argumentti nollana.

Koodi:

 Alirnd_esimerkki2 () Dim K kaksinkertaiseksi K = Rnd (0) MsgBox K End Sub 

Tämä tuottaa saman numeron uudestaan ​​ja uudestaan, kun suoritamme koodin.

Esimerkki # 3 - Luo koko satunnaisluku

Voimme myös luoda kokonaislukuja käyttämällä muita VBA-toimintoja tai muita syöttölukuja. Katso esimerkki alla olevasta koodista.

Koodi:

 Alirnd_esimerkki3 () Hämärä K kaksinkertaisena K = 1 + Rnd * 100 MsgBox K Loppu 

Tämä koodi tuottaa satunnaisia ​​kokonaislukuja desimaalipisteillä joka kerta, kun suoritamme koodin.

Jos tarkastelet kokonaislukuja ilman desimaalipilkkuja, voimme käyttää alla olevaa koodia.

Koodi:

 Alirnd_esimerkki3 () Dim K kaksinkertaiseksi K = CInt (1 + Rnd * 100) MsgBox K End Sub 

Tällöin kokonaisluvut muodostetaan 1: stä 100: een.


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