Jei norite sukurti unikalių atsitiktinių skaičių sąrašą, galite naudoti RANDBETWEEN funkcijas ir VBA RND. Šiame straipsnyje iš pateikto sąrašo sugeneruosime 3 unikalius numerius.
Originalų klausimą galite rasti čia
Klausimas: Noriu, kad makrokomanda sugeneruotų 3 atsitiktinių skaičių sąrašą iš A stulpelyje išsaugotų skaičių sąrašo. Yra sąlyga, kad reikia pasirūpinti VBA kodu. Sąlyga yra tai, kad B stulpelyje yra 3 skaičiai, todėl makrokomandai reikia sukurti skaičių, kurie nebuvo pateikti vieną kartą stulpelyje B, sąrašą. Tokiu būdu B ir C stulpelyje galime turėti unikalių skaičių sąrašą.
Toliau pateikiamas pavyzdys, kurį turime:
Gauti unikalių atsitiktinių skaičių sąrašą; norėdami paleisti VB redaktorių, turime atlikti toliau nurodytus veiksmus
- Spustelėkite skirtuką Kūrėjas
- Iš kodų grupės pasirinkite „Visual Basic“
- Nukopijuokite žemiau esantį kodą į standartinį modulį
Sub RandomNumbers () Dim ws kaip darbalapis Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal as Long Randomize Set ws = ThisWorkbook.Sheets ("Skaičiai") Su 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" & AtsitiktinisNum) .Vertos ciklas iki diapazono ("B1: C24"). Raskite (kas: = myVal, lookat: = xlWhole) Is nothing .Range ("C" & i) .Value = myVal Next i End With End Sub
- Jei norite paleisti makrokomandą, galime paspausti klavišą F5, jei esate aktyvus „Visual Basic Editor“ ekrane
- Kitas būdas paleisti makrokomandą yra „ALT + F8“ klavišas; pasirinkite makrokomandą ir spustelėkite mygtuką Vykdyti
- Kai vykdome VBA kodą, unikalus skaičių sąrašas bus automatiškai sugeneruotas
Kodo paaiškinimas:
Aukščiau pateiktame kode mes naudosime RND & INT funkciją kartu su „For loop & Do“ kilpa, kad gautume rezultatą.
- Mes deklaruojame Dim ws kaip darbalapį; ws paskelbimas darbalapiu yra tas, kad mes norime, kad kodas būtų paleistas tik konkrečiame darbalapyje, ty mūsų pavyzdyje esantys skaičiai
- Dim RandomNum as Long: taip bus išsaugoti unikalūs skaičiai
- Nustatyti ws = ThisWorkbook.Sheets ("Skaičiai"): ši eilutė užtikrins, kad kodas būtų rodomas tik Skaičių lape
- Kitoje kodo eilutėje bus naudojamas sakinys
- ar = .Range ("A" & Rows.Count) .End (xlUp). Eilutė: ši eilutė išsaugos paskutinį langelį A stulpelyje (24 mūsų pavyzdyje)
- .Range („C1: C3“). „ClearContents“: ši eilutė ištrins visą esamą turinį diapazone C1: C3
- Tada paleisime ciklą nuo 1 iki 3 kartų su „Do Loop“, kad sukurtume atsitiktinių skaičių sąrašą ir patikrintume, ar esamame diapazone nėra kopijų, t.
Išvada: Mes galime sukurti atskirų atsitiktinių skaičių sąrašą iš „Microsoft Excel“ sąrašo, šiek tiek pataisydami aukščiau pateiktą VBA kodą.
Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Parašykite mums el