Excel VBA: Generator naključnih številk brez dvojnikov (4 primeri)

  • Deliti To
Hugh West

Ta članek prikazuje 4 primere generator naključnih števil brez podvajanj z uporabo VBA v Excelu. Tu bomo za konfiguracijo naše kode uporabili vgrajeno funkcijo Rnd v Excelu. Potopimo se v primere in se naučimo tehnik za ustvarjanje edinstvenih naključnih številk.

Prenesi delovni zvezek za prakso

Prenesite ta delovni zvezek za vadbo, ki ga lahko uporabljate med branjem tega članka.

Generator naključnih številk brez dvojnikov.xlsm

4 primeri generatorja naključnih številk brez dvojnikov v programu Excel VBA

Pisanje kode v urejevalniku Visual Basic

Na naslov generiranje naključnih številk brez dvojnikov , moramo odprta in . pisanje kode VBA v urejevalnik Visual Basic. Sledite koraki na . odprta . urejevalnik Visual Basic in vanj napišite nekaj kode.

  • Pojdite na Razvijalec v zavihku Excelov trak .
  • Kliknite . . Možnost Visual Basic.

  • V Visual Basic za aplikacije kliknite na okno Vstavljanje spustne vrstice na . izberite . Nov modul možnost.

Zdaj postavite svoj koda v notranjosti vizualni urejevalnik kode in . pritisnite F5 na . zagnati ga.

1. Uporaba funkcije VBA Rnd za generiranje naključnega števila brez dvojnikov

Spletna stran Funkcija Rnd se uporablja v Excel VBA na . ustvarjanje naključnih številk ki so med 0 in . 1 ekskluzivno.

Naloga : Generiranje 10 naključnih številk med 0 in . 1 na spletnem mestu celice A1:A10.

Koda : Vstavite naslednje koda v urejevalnik Visual Basic in pritisnite F5 na . zagnati ga.

 Public Sub GenerateRandomNumNoDuplicates() Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = Rnd Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Rnd Loop Rng.Value = randomNumber Next End Sub 

Izhod : Zgornja slika zaslona prikazuje 10 edinstvenih naključnih številk v v razponu od 0 do 1.

Razlaga kode:

V tej kodi smo uporabili Funkcija Rnd na . vstavite naključne številke v območje celic A1:A10 . vstavljanje a nova številka , smo uporabili Do While Loop na . poglej za številka v vnaprej določeno območje celic (A1:A10) ali je že obstaja ali ne Preverjanje obstoj o številka v obseg celic vsakič smo kodo konfigurirali z Funkcija COUNTIF , Ta funkcija preverja . a novo naključno število v seznam na spletnem mestu že obstoječe številke, preden jo vstavite.

Preberite več: Excelova formula za generiranje naključnega števila (5 primerov)

2. Generator naključnih številk za definirano spodnjo in zgornjo mejo brez dvojnikov

Na naslov ustvarjanje naključnih številk v okviru opredeljeno območje , moramo nastaviti spodnja meja in . zgornja meja v naši kodi VBA. Spodnja meja je najnižje število in zgornja meja je največje število v obseg za generator naključnih števil. Uporabimo lahko naslednje formula v naši kodi.

(zgornja meja - spodnja meja + 1) * Rnd + spodnja meja

2.1 Generator naključnih števil - decimalna številka

Naloga : Generiranje 10 naključnih številk med 10 in . 20 na spletnem mestu celice A1:A10.

Koda : Vstavite naslednje koda v urejevalnik Visual Basic in pritisnite F5 na . zagnati ga.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 10 Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Loop Rng.Value =randomNumber Naslednja Konec podmene 

Izhod : Zgornja slika zaslona prikazuje 10 edinstvenih naključnih številk v v razponu od 1 do 10.

2.2 Generator naključnih števil - celoštevilski

V tej ilustraciji bomo uporabili Funkcija VBA Int na . odstranite . delni del iz naključne številke .

Naloga : Generiranje 20 naključnih celih števil med 1 in . 20 na spletnem mestu celice A1:B10.

Koda : Vstavite naslednje koda v urejevalnik Visual Basic in pritisnite F5 na . zagnati ga.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) LoopRng.Value = randomNumber Next End Sub 

Izhod : Zgornja slika zaslona prikazuje 20 edinstvenih naključnih celih števil v od 1 do 20.

Preberite več: Generator naključnih številk v Excelu brez ponovitev (9 metod)

Podobna branja

  • Generator naključnih številk z orodjem za analizo podatkov in funkcijami v Excelu
  • Kako ustvariti naključne podatke v Excelu (9 enostavnih metod)
  • Generator naključnih petmestnih številk v Excelu (7 primerov)
  • Generator naključnih štirimestnih številk v Excelu (8 primerov)
  • Generiranje naključne številke iz seznama v Excelu (4 načini)

3. Določite decimalna mesta za edinstven generator naključnih številk v Excelu VBA

Uporabimo lahko Okrogla funkcija v naši kodi na navedite . . številka na spletnem mestu decimalna mesta v naključno ustvarjene edinstvene številke. . sintaksa funkcije je-

Round(izraz, [numdecimalplaces])

Moramo navedite . . 2. argument v skladu z našimi zahteva .

Naloga : Generiranje 20 naključnih števil z dvema decimalnima mestoma med 1 in . 20 na spletnem mestu celice A1:B10.

Koda : Vstavite naslednje koda v urejevalnik Visual Basic in pritisnite F5 na . zagnati ga.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2)Loop Rng.Value = randomNumber Next End Sub 

Izhod : Zgornja slika zaslona prikazuje 20 edinstvenih naključnih celih števil z dvema decimalnima mestoma v od 1 do 20.

Preberite več: Generiranje naključnega števila v Excelu z decimalkami (3 metode)

4. Razvoj uporabniškega obrazca za generator naključnih številk brez dvojnikov v Excelu VBA

V tej ponazoritvi bomo pokazali, kako uporabiti Uporabniški obrazec na spletnem mestu Excel VBA na . ustvarjanje naključnih številk s spletno stranjo . ni podvojitev .

Naloga: Generiranje 20 naključnih številk v območju celic A1:B10 z uporabo Uporabniški obrazec z vhodne vrednosti (i) Spodnja meja (ii) zgornja meja (iii) število decimalnih mest.

Ustvarite obrazec UserForm:

Če želite ustvariti Uporabniški obrazec z našim želena vnosna polja .

  • Pojdite na Razvijalec v zavihku Excelov trak .
  • Kliknite . . Možnost Visual Basic.

  • V Visual Basic za aplikacije kliknite na okno Vstavljanje spustne vrstice na . izberite . Uporabniški obrazec možnost.

  • V Dodajanje uporabniškega obrazca a oznaka .
  • Podnapis oznaka kot Spodnja meja v lastnostih.

  • Dodaj dva več nalepke z imenom Zgornji sveženj in . DecimalPlaces .

  • Zdaj dodajte tri besedilna polja v Uporabniški obrazec .

  • V tej fazi, dodaj a CommandButton in ga poimenujte Ustvarjanje .

  • Zdaj, dvojni klik . CommandButton in vstavite naslednje koda v urejevalnik kode .
 Private Sub CommandButton1_Click() Dim lowerbound As Integer Dim upperbound As Integer Dim decimalPlaces As Integer lowerbound = Val(TextBox1.Text) upperbound = Val(TextBox2.Text) decimalPlaces = Val(TextBox3.Text) Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Do WhileApplication.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Loop Rng.Value = randomNumber Next End Sub 

  • Pritisnite F5 na . zagnati . koda in Uporabniški obrazec ima . pojavil .
  • Postavite Spodnja meja , zgornja vezava, in številka na spletnem mestu decimalna mesta v Uporabniški obrazec in pritisnite Ustvari gumb .

Izhod : V celice A1: B10 , obstajajo 20 naključnih številk s spletno stranjo . 2 decimalni mesti v od 1 do 30.

Preberite več: Kako generirati naključne številke brez podvajanj v Excelu (7 načinov)

Stvari, ki si jih je treba zapomniti

  • Uporabili bi lahko tudi Funkcija Fix namesto Funkcija Int na . generiranje edinstvenih celoštevilskih številk . Funkcija odstrani . delni del o številka tako kot Funkcija Int .

Zaključek

Zdaj vemo, kako s pomočjo primernih primerov ustvariti edinstvene naključne številke z uporabo VBA v Excelu. Upamo, da vam bo to pomagalo pri bolj samozavestni uporabi funkcionalnosti. Morebitna vprašanja ali predloge ne pozabite postaviti v spodnjem polju za komentarje.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.