Excel VBA: Random Number Generator sonder duplikate (4 voorbeelde)

  • Deel Dit
Hugh West

Hierdie artikel illustreer 4 voorbeelde van willekeurige getalgenerator met geen duplikate wat VBA in Excel gebruik nie. Hier sal ons Excel se ingeboude Rnd-funksie gebruik om ons kode op te stel. Kom ons duik in die voorbeelde om die tegnieke te leer om unieke ewekansige getalle te genereer.

Laai Oefenwerkboek af

Laai hierdie oefenwerkboek af om te oefen terwyl jy hierdie artikel lees.

Willekeurige getalgenerator sonder duplikate.xlsm

4 Voorbeelde van ewekansige getalgenerator met geen duplikate in Excel VBA

Skryf kode in Visual Basic Editor

Om willekeurige getalle te genereer sonder duplikate , moet ons oop en skryf VBA kode in die visuele basiese redigeerder. Volg die stappe om open die visuele basiese redigeerder en skryf 'n kode daar.

  • Gaan na die Ontwikkelaar oortjie vanaf die Excel-lint .
  • Klik die Visual Basic-opsie.

  • In die Visual Basic For Applications -venster, klik die Voeg in aftreklys om die Nuwe Module te kies opsie.

Sit nou jou kode binne die visuele koderedigeerder en druk F5 om hardloop dit.

1. Gebruik van VBA Rnd-funksie om ewekansige nommer sonder duplikate te genereer

Die Rnd-funksie word gebruik in Excel VBA tot genereer ewekansige getalle wat tussen 0 is en 1 eksklusief.

Taak : Genereer 10 ewekansige getalle tussen 0 en 1 in selle A1:A10.

Kode : Voeg die volgende kode in die visuele basiese redigeerder in en druk F5 om uit te voer dit.

1988

Uitvoer : Die skermkiekie hierbo wys 10 unieke ewekansige getalle in die reeks van 0 en 1.

Kode Verduideliking:

In hierdie kode het ons die Rnd funksie <2 gebruik>om toevallige getalle in die selreeks A1:A10 in te voeg. Voordat ons 'n nuwe nommer ingevoeg het, het ons 'n Doen terwyl lus gebruik om soek vir die nommer in die vooraf gedefinieerde selreeks (A1:A10) of dit reeds bestaan ​​ of nie . Om die bestaan ​​ van die nommer in die selreeks elke keer na te gaan, het ons die kode gekonfigureer met die COUNTIF-funksie , Hierdie funksie kontroleer 'n nuwe ewekansige nommer in die lys van reeds bestaande nommers voordat dit ingevoeg word.

Lees meer : Excel-formule om ewekansige nommer te genereer (5 voorbeelde)

2. Ewekansige nommergenerator vir gedefinieerde ondergrens en bogrens sonder duplikate

Om willekeurige getalle binne 'n gedefinieerde reeks te genereer, moet ons stel die ondergrens en bogrens in ons VBA-kode. Vir inligting is die ondergrens die laagste getal en die bogrens is die hoogste getal in die reeks vir die ewekansige getalgenerator. Ons kan die volgende formule in ons kode gebruik.

(bogrens – ondergrens + 1) * Rnd + ondergrens

2.1 Willekeurig Getalgenerator- Desimale

Taak : Genereer 10 ewekansige getalle tussen 10 en 20 in selle A1:A10.

Kode : Voeg die volgende kode in die visuele basiese redigeerder in en druk F5 om uit te voer dit.

7164

Uitvoer : Die skermkiekie hierbo wys 10 unieke ewekansige getalle in die reeks van 1 en 10.

2.2 Willekeurige Getalgenerator- Heelgetal

In hierdie illustrasie sal ons die<1 gebruik> VBA Int-funksie om die breukdeel van die ewekansige getalle te verwyder.

Taak : Genereer 20 ewekansige heelgetalgetalle tussen 1 en 20 in selle A1:B10.

Kode : Voeg die volgende kode in die visuele basiese redigeerder in en druk F5 om uit te voer dit.

9968

Uitvoer : Die skermkiekie hierbo wys 20 unieke ewekansige heelgetalgetalle in die -reeks van 1 en 20.

Lees meer: Random Number Generator in Excel met geen herhalings (9 metodes)

Soortgelyke lesings

  • Ewekansige getalgenerator met data-analise-instrument en -funksies in Excel
  • Hoe om Genereer ewekansige data in Excel (9Maklike metodes)
  • Ewekansige 5-syfergetalgenerator in Excel (7 voorbeelde)
  • Ewekansige 4-syfergetalgenerator in Excel (8 voorbeelde)
  • Genereer ewekansige nommer uit lys in Excel (4 maniere)

3. Spesifiseer desimale plekke vir unieke ewekansige getalgenerator in Excel VBA

Ons kan die Round-funksie in ons kode gebruik om die te spesifiseer getal van desimale plekke in die lukraak gegenereerde unieke getalle . Die sintaksis van die funksie is-

Round(uitdrukking, [getaldesimale plekke])

Ons moet spesifiseer die 2de argument volgens ons vereiste .

Taak : Genereer 20 ewekansige getalle met 2 desimale plekke tussen 1 en 20 in selle A1:B10.

Kode : Voeg die volgende kode in die visuele basiese redigeerder in en druk F5 om uit te voer dit.

9229

Uitvoer : Die skermkiekie hierbo wys 20 unieke ewekansige heelgetalgetalle met 2 desimale plekke in die reeks van 1 en 20.

Lees meer: Genereer ewekansige getal in Excel met desimale (3 metodes)

4. Ontwikkel 'n gebruikersvorm vir ewekansige nommergenerator sonder duplikate in Excel VBA

In hierdie illustrasie sal ons wys hoe om 'n Gebruikersvorm in <1 te gebruik>Excel VBA om ewekansige getalle te genereer met geen duplikate .

Taak: Genereer20 ewekansige getalle in selreeks A1:B10 met 'n Gebruikersvorm met die invoerwaardes (i) ondergrens (ii) bogrens (iii) aantal desimale plekke.

Skep 'n Gebruikersvorm:

Volg die stappe hieronder om 'n Gebruikersvorm met ons gewenste invoervelde te skep .

  • Gaan na die Ontwikkelaar oortjie vanaf die Excel-lint .
  • Klik die Visueel Basiese opsie.

  • In die Visual Basic For Applications venster, klik die Voeg in aftreklys om die Gebruikersvorm -opsie te kies.

  • In die Gebruikersvorm voeg by 'n etiket .
  • Stel die etiket as Ondergrens in die eienskappe.

  • Voeg twee meer etikette by met die naam Upperbund en Desimale Plekke .

  • Voeg nou drie teksbokse in die Gebruikersvorm .

  • Voeg op hierdie stadium by 'n CommandButton en noem dit Genereer .

  • Nou, dubbelklik die CommandButton en plaas die volgende kode in die koderedigeerder .
4551

  • Druk F5 om uit te voer die kode en die Gebruikersvorm het verskyn .
  • Stel die ondergrens , bogrens, en die getal van desimale plekke in die Gebruikersvorm en druk die GenereerKnoppie .

Uitvoer : In selle A1:B10 is daar 20 ewekansige getalle met 2 desimale plekke in die reeks van 1 tot 30.

Lees meer: Hoe om ewekansige getalle sonder duplikate in Excel te genereer (7 maniere)

Dinge om te onthou

  • Ons kan ook die Repareer funksie in plaas van die Int-funksie om unieke heelgetalgetalle te genereer. Die funksie verwyder die breukdeel van 'n getal net soos die Int-funksie .

Gevolgtrekking

Nou weet ons hoe om unieke ewekansige getalle met behulp van VBA in Excel te genereer met behulp van geskikte voorbeelde. Hopelik sal dit jou help om die funksionaliteit met meer selfvertroue te gebruik. Enige vrae of voorstelle moenie vergeet om dit in die kommentaarblokkie hieronder te plaas nie.

Hugh West is 'n hoogs ervare Excel-afrigter en ontleder met meer as 10 jaar ondervinding in die bedryf. Hy het 'n Baccalaureusgraad in Rekeningkunde en Finansies en 'n Meestersgraad in Besigheidsadministrasie. Hugh het 'n passie vir onderrig en het 'n unieke onderrigbenadering ontwikkel wat maklik is om te volg en te verstaan. Sy kundige kennis van Excel het duisende studente en professionele persone wêreldwyd gehelp om hul vaardighede te verbeter en uit te blink in hul loopbane. Deur sy blog deel Hugh sy kennis met die wêreld, en bied gratis Excel-tutoriale en aanlyn opleiding aan om individue en besighede te help om hul volle potensiaal te bereik.