Ģenerējiet izlases numurus, izmantojot VBA RND funkciju

Excel VBA izlases numuri

Lai ģenerētu nejaušus skaitļus vba, mums ir iebūvēta funkcija ar nosaukumu RND . Lai izveidotu nejaušus skaitļus, argumentam ir vajadzīgs tikai skaitlis, un tas ir arī izvēles parametrs. Tas izveidos nejaušus skaitļus, kas ir lielāki par 0 un mazāki par 1.

Tas darbojas tieši tāpat kā excel funkcija “RAND”. Kā es teicu darblapas funkcijā “RAND”, arī VBA mēs varam ģenerēt nejaušus skaitļus, kas ir lielāki par 0, bet mazāki par 1.

Tagad ieskatieties funkcijas “RND” sintaksē.

[Skaits]: Mēs varam nodot argumentu trīs veidos.

  • Ja mēs nododam skaitli kā <0, tas katru reizi ģenerē to pašu nejaušo skaitli.
  • Ja mēs nodosim skaitli kā 0, tas atkārtos pēdējo doto skaitli.
  • Ja mēs nododam skaitli> 0, tas jums vienmēr piešķir dažādus nejaušus skaitļus, ti, nākamo nejaušo skaitli secībā.

Kā ģenerēt nejaušus skaitļus, izmantojot VBA kodu?

Šo VBA izlases numuru Excel veidni varat lejupielādēt šeit - VBA izlases numuru Excel veidne

1. piemērs

Tagad mēs redzēsim vienkāršo “RND” funkcijas piemēru. Veiciet tālāk norādītās darbības, lai pats rakstītu VBA kodu.

1. darbība: deklarējiet mainīgo kā “Integer” VBA

Kods:

 Apakšrinds_piemērs1 () Dim K kā veselais beigu apakšgrupa 

2. solis: Tagad piešķiriet vērtību mainīgajam “k”, izmantojot funkciju “ RND ”.

Kods:

 Apakšrinds_piemērs1 () Dim K kā vesels skaitlis K = Rnd () Beigas apakškopa 

3. darbība. Parādiet vērtību, ko ziņojuma lodziņā atgrieza mainīgais “k” .

Kods:

 Sub Rnd_Piemērs1 () Dim K kā vesels skaitlis K = Rnd () MsgBox K Beigas Sub 

Tagad palaidiet Excel makro un redziet, kāds ir rezultāts.

Paskaties, kas ir noticis.

Rezultāts tiek parādīts kā 1, kur funkcija “RND” var atgriezt tikai skaitļus, kas ir lielāki par nulli, bet mazāki par 1.

Jums noteikti jādomā par to, kas šeit ir nepareizs.

Nepareiza lieta ir tāda veida datu tips, kādu esam piešķīruši mainīgajam “k”.

Ja atskatāties uz mainīgo, kuru esam paziņojuši, datu tipam esam piešķīruši veselu skaitli. Tā kā mainīgo esam piešķīruši kā veselu skaitli, veselos skaitļus var parādīt tikai no -32768 līdz 32767.

Ikreiz, kad RND atgriež decimāldaļu, VBA pārvērš decimāldaļu ar tuvāko veselu skaitli, ti, 1.

Tātad, lai formula darbotos pareizi, deklarējiet mainīgo kā “ Double ”.

“Double” ir VBA datu tips, kurā var būt decimāldaļas.

Kods:

 Sub Rnd_Piemērs1 () Dim K As Double K = Rnd () MsgBox K End Sub 

Tagad kods un redzēt, kāds ir rezultāts.

Noklikšķiniet uz Labi un palaidiet vēl vienu reizi, lai redzētu, kāds ir rezultāts.

Šoreiz mēs saņēmām citu rezultātu. Tā kā “RND” pēc būtības ir nepastāvīga funkcija, tā ikreiz, kad izpildāt kodu, atveido atšķirīgus rezultātus.

2. piemērs - katru reizi iegūstiet to pašu izlases numuru

Kā mēs redzējām iepriekšējo piemēru, funkcija “RND” atkārto rezultātu katru reizi, kad mēs izpildām kodu. Lai atkal un atkal iegūtu vienu un to pašu izlases skaitli, mums arguments jānokārto kā nulle.

Kods:

 Sub Rnd_Piemērs2 () Dim K As Double K = Rnd (0) MsgBox K End Sub 

Tas izpildīs to pašu numuru atkal un atkal, kad mēs izpildīsim kodu.

3. piemērs - ģenerējiet visu izlases skaitli

Mēs varam arī ģenerēt veselus skaitļus, izmantojot citas VBA funkcijas vai citus ievades numurus. Piemēram, skatiet zemāk esošo kodu.

Kods:

 Sub Rnd_Piemērs3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K Beigas Sub 

Šis kods katru reizi, kad mēs izpildīsim kodu, ģenerēs nejaušus veselus skaitļus ar decimālzīmēm.

Ja skatāties veselos skaitļos bez komata, mēs varam izmantot zemāk redzamo kodu.

Kods:

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

Tas turpinās ģenerēt veselos skaitļus no 1 līdz 100.


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