Excel VBA: Generátor náhodných čísel bez duplikátov (4 príklady)

  • Zdieľajte To
Hugh West

Tento článok ilustruje 4 príklady generátor náhodných čísel bez duplikátov pomocou VBA v programe Excel. Na konfiguráciu nášho kódu tu použijeme vstavanú funkciu Rnd programu Excel. Ponorme sa do príkladov, aby sme sa naučili techniky generovania jedinečných náhodných čísel.

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Generátor náhodných čísel bez duplikátov.xlsm

4 príklady generátora náhodných čísel bez duplikátov v programe Excel VBA

Písanie kódu v editore jazyka Visual Basic

Na generovať náhodné čísla bez duplikátov , musíme otvoriť a napísať kód VBA v editor Visual Basic. Sledujte kroky na otvoriť . editor Visual Basic a napíšte tam nejaký kód.

  • Prejdite na Vývojár z karty Pásmo aplikácie Excel .
  • Kliknite na . . Možnosť Visual Basic.

  • V Visual Basic pre aplikácie kliknite na okno Vloženie rozbaľovacieho zoznamu na vybrať . Nový modul možnosť.

Teraz si dajte kód vo vnútri vizuálny editor kódu a stlačiť kláves F5 na spustiť to.

1. Použitie funkcie VBA Rnd na generovanie náhodného čísla bez duplikátov

Stránka Funkcia Rnd sa používa v Excel VBA na generovať náhodné čísla ktoré sú medzi 0 a 1 exkluzívne.

Úloha : Generovanie 10 náhodných čísel medzi 0 a 1 na stránke bunky A1:A10.

Kód : Vložte nasledujúce kód v editor Visual Basic a stlačte F5 na spustiť to.

 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 

Výstup : Vyššie uvedený obrázok zobrazuje 10 jedinečných náhodných čísel v rozsah 0 a 1.

Vysvetlenie kódu:

V tomto kóde sme použili Funkcia Rnd na vložiť náhodné čísla v rozsah buniek A1:A10 . vkladanie a nové číslo , sme použili Cyklus Do While na pozrite sa na pre číslo v preddefinovaný rozsah buniek (A1:A10) či je to už existuje alebo nie Kontrola existencia z číslo v rozsah buniek zakaždým sme nakonfigurovali kód pomocou Funkcia COUNTIF , Táto funkcia kontroly a nové náhodné číslo v zoznam z už existujúce čísla pred vložením.

Prečítajte si viac: Vzorec programu Excel na generovanie náhodného čísla (5 príkladov)

2. Generátor náhodných čísel pre definované dolné a horné hranice bez duplikátov

Na generovanie náhodných čísel v rámci definovaný rozsah , musíme nastaviť dolná hranica a horná hranica v našom kóde VBA. dolná hranica je najnižšie číslo a horná hranica je najvyššie číslo v rozsah pre generátor náhodných čísel. Môžeme použiť tento vzorec v našom kóde.

(upperbound - lowerbound + 1) * Rnd + lowerbound

2.1 Generátor náhodných čísel - desatinné číslo

Úloha : Generovanie 10 náhodných čísel medzi 10 a 20 na stránke bunky A1:A10.

Kód : Vložte nasledujúce kód v editor Visual Basic a stlačte F5 na spustiť to.

 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 Next End Sub 

Výstup : Vyššie uvedený obrázok zobrazuje 10 jedinečných náhodných čísel v rozsah 1 a 10.

2.2 Generátor náhodných čísel - celé číslo

Na tomto obrázku použijeme Funkcia VBA Int na odstrániť . zlomková časť z náhodné čísla .

Úloha : Generovanie 20 náhodných celých čísel medzi 1 a 20 na stránke bunky A1:B10.

Kód : Vložte nasledujúce kód v editor Visual Basic a stlačte F5 na spustiť to.

 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 

Výstup : Vyššie uvedený obrázok zobrazuje 20 jedinečných náhodných celých čísel v rozsah 1 a 20.

Prečítajte si viac: Generátor náhodných čísel v programe Excel bez opakovania (9 metód)

Podobné čítania

  • Generátor náhodných čísel s nástrojom na analýzu údajov a funkciami v programe Excel
  • Ako generovať náhodné údaje v programe Excel (9 jednoduchých metód)
  • Generátor náhodných 5-ciferných čísel v programe Excel (7 príkladov)
  • Generátor náhodných štvorciferných čísel v programe Excel (8 príkladov)
  • Generovanie náhodného čísla zo zoznamu v programe Excel (4 spôsoby)

3. Zadanie desatinných miest pre jedinečný generátor náhodných čísel v programe Excel VBA

Môžeme použiť Funkcia Round v našom kóde na uveďte . číslo z desatinné miesta v náhodne vygenerované jedinečné čísla . syntax funkcie je-

Zaokrúhliť(výraz, [numdecimalplaces])

Musíme uveďte . 2. argument podľa našich požiadavka .

Úloha : Generovanie 20 náhodných čísel s 2 desatinnými miestami medzi 1 a 20 na stránke bunky A1:B10.

Kód : Vložte nasledujúce kód v editor Visual Basic a stlačte F5 na spustiť to.

 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 

Výstup : Vyššie uvedený obrázok zobrazuje 20 jedinečných náhodných celých čísel s 2 desatinnými miestami v rozsah 1 a 20.

Prečítajte si viac: Generovanie náhodného čísla v programe Excel s desatinnými číslami (3 metódy)

4. Vývoj užívateľského formulára pre generátor náhodných čísel bez duplikátov v programe Excel VBA

Na tomto obrázku si ukážeme, ako použiť Používateľský formulár na stránke Excel VBA na generovanie náhodných čísel s žiadne duplikáty .

Úloha: Generovanie 20 náhodných čísel v rozsahu buniek A1:B10 pomocou Používateľský formulár s vstupné hodnoty (i) dolná hranica (ii) horná hranica (iii) počet desatinných miest.

Vytvorenie formulára UserForm:

Podľa nasledujúcich krokov vytvorte Používateľský formulár s našou požadované vstupné polia .

  • Prejdite na Vývojár z karty Pásmo aplikácie Excel .
  • Kliknite na . . Možnosť Visual Basic.

  • V Visual Basic pre aplikácie kliknite na okno Vloženie rozbaľovacieho zoznamu na vybrať . Používateľský formulár možnosť.

  • V Pridať užívateľský formulár a štítok .
  • Titulok štítok ako LowerBound vo vlastnostiach.

  • Pridať dva viac štítky s názvom Horný zväzok a DecimalPlaces .

  • Teraz pridajte tri textové polia v Používateľský formulár .

  • V tejto fáze, pridať a CommandButton a pomenujte ho Generovať .

  • Teraz, dvojité kliknutie . CommandButton a vložte nasledujúce kód v editor kódu .
 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 

  • Tlač F5 na spustiť . kód a Používateľský formulár sa objavili na stránke . .
  • Vložte dolná hranica , horná hranica, a číslo z desatinné miesta v Používateľský formulár a stlačte tlačidlo Generovať tlačidlo .

Výstup : V bunky A1:B10 , existujú 20 náhodných čísel s 2 desatinné miesta v v rozsahu 1 až 30.

Prečítajte si viac: Ako generovať náhodné čísla bez duplikátov v programe Excel (7 spôsobov)

Čo si treba zapamätať

  • Mohli by sme tiež použiť Funkcia Fix namiesto Funkcia Int na generovanie jedinečných celých čísel . Funkcia odstraňuje . zlomková časť o číslo rovnako ako Funkcia Int .

Záver

Teraz už vieme, ako pomocou vhodných príkladov generovať jedinečné náhodné čísla pomocou VBA v programe Excel. Dúfame, že vám to pomôže používať túto funkciu s väčšou istotou. Akékoľvek otázky alebo návrhy nezabudnite uviesť do komentára nižšie.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.