Ja vēlaties izveidot unikālu izlases numuru sarakstu, varat izmantot funkcijas RANDBETWEEN un VBA RND. Šajā rakstā mēs no piedāvātā saraksta ģenerēsim 3 unikālus numurus.
Oriģinālo jautājumu varat atrast šeit
Jautājums: Es vēlos, lai makro no kolonnas A saglabātā skaitļu saraksta ģenerētu 3 nejaušu skaitļu sarakstu. Ir nosacījums, ka ir jārūpējas par VBA kodu. Nosacījums ir tāds, ka kolonnā B ir 3 skaitļi, tāpēc makro ir jāizveido to ciparu saraksts, kas kolonnā B nav bijuši ne reizi. Tādā veidā B un C slejā var būt unikālu numuru saraksts.
Tālāk ir sniegts mūsu piemēra momentuzņēmums:
Lai iegūtu unikālu izlases numuru sarakstu; mums ir jāveic šādas darbības, lai palaistu VB redaktoru
- Noklikšķiniet uz cilnes Izstrādātājs
- Kodu grupā atlasiet Visual Basic
- Nokopējiet zemāk esošo kodu standarta modulī
Apakš RandomNumbers () Dim ws kā darblapa Dim ar As Variant Dim RandomNum Tik ilgi Dim i Kā Vesels skaitlis Dim myVal Tik ilgi Randomize Set ws = ThisWorkbook.Sheets ("Numbers") Ar ws ar = .Range ("A" & Rows.Count ) .End (xlUp) .Row .Range ("C1: C3"). ClearContents For i = 1 to 3 Do RandomNum = Int ((1 - ar + 1) * Rnd + ar) myVal = .Range ("A") & RandomNum). Vērtības cilpa līdz diapazonam ("B1: C24"). Atrodiet (kas: = myVal, lookat: = xlWhole) Is Nothing .Range ("C" & i). Value = myVal Next i End With End Sub
- Lai palaistu makro, mēs varam nospiest taustiņu F5, ja esat aktīvs Visual Basic Editor ekrānā
- Vēl viens makro palaišanas veids ir taustiņa “ALT + F8” izmantošana; atlasiet makro un noklikšķiniet uz pogas Palaist
- Izpildot VBA kodu, unikālais numuru saraksts tiks automātiski ģenerēts
Koda skaidrojums:
Iepriekš minētajā kodā mēs izmantosim RND & INT funkciju kopā ar For loop & Do cilpu, lai iegūtu rezultātu.
- Mēs deklarējam Dim ws kā darblapu; ws deklarēšana par darblapu ir tāda, ka mēs vēlamies, lai kods tiktu palaists tikai noteiktā darblapā, ti, mūsu piemērā esošie skaitļi
- Dim RandomNum as Long: tas saglabās unikālos skaitļus
- Iestatīt ws = ThisWorkbook.Sheets ("Skaitļi"): šī rinda nodrošinās, ka kods darbojas tikai lapā Numbers
- Nākamajā koda rindā tiks izmantots paziņojums
- ar = .Range ("A" & Rows.Count) .End (xlUp). Rinda: šī rinda saglabās pēdējo kolonnu A slejā (mūsu piemērā 24)
- .Range ("C1: C3"). ClearContents: šī rinda izdzēsīs visu esošo saturu diapazonā C1: C3
- Pēc tam mēs veiksim cilpu, sākot no 1 līdz 3 reizēm ar Do Loop, lai izveidotu nejaušu skaitļu sarakstu un pārbaudītu, vai esošajā diapazonā nav dublikātu, ti, B slejā
Secinājums: Mēs varam izveidot atsevišķu nejaušu skaitļu sarakstu no Microsoft Excel saraksta, nedaudz mainot iepriekš minēto VBA kodu.
Ja jums patika mūsu emuāri, kopīgojiet to ar saviem draugiem Facebook. Un arī jūs varat sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot, papildināt vai ieviest jauninājumus mūsu darbā un uzlabot to jūsu labā. Rakstiet mums e -pasta vietnē