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 VBA-taulukon funktiossa "RAND", voimme luoda 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, toisin sanoen sarjan seuraavan satunnaisluvun.

Kuinka luoda satunnaislukuja VBA-koodilla?
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 sellainen tietotyyppi, jonka olemme määrittäneet muuttujalle “k”.
Jos katsot taaksepäin ilmoitettua muuttujaa, olemme määrittäneet 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 muuttujaksi " 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 luonteeltaan epävakaa toiminto, se tuottaa erilaisia tuloksia aina, kun suoritat koodin.
Esimerkki # 2 - Hanki sama satunnaisluku joka kerta
Kuten olemme nähneet edellisestä esimerkistä e, “RND” -toiminto tuottaa tuloksen joka kerta, kun suoritamme koodin. Jotta saisimme saman satunnaisluvun uudestaan ja uudestaan, 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 esimerkiksi alla oleva koodi.
Koodi:
Ala Rnd_esimerkki3 () Hämärä K kaksinkertaisena K = 1 + Rnd * 100 MsgBox K Loppu Sub
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 kokonaislukuja muodostetaan 1: stä 100: een.