Excel VBA: nejaušo skaitļu ģenerators bez dublēšanās (4 piemēri)

  • Dalīties Ar Šo
Hugh West

Šajā rakstā ilustrēti 4 piemēri nejaušo skaitļu ģenerators bez dublikātiem, izmantojot Excel VBA. Šeit mēs izmantosim Excel iebūvēto funkciju Rnd, lai konfigurētu savu kodu. Iesim talkā ar piemēriem, lai apgūtu unikālu nejaušo skaitļu ģenerēšanas paņēmienus.

Lejupielādēt Practice Workbook

Lejupielādējiet šo prakses darba burtnīcu, lai vingrinātos, kamēr lasāt šo rakstu.

Gadījuma skaitļu ģenerators bez dublēšanās.xlsm

4 nejaušu skaitļu ģeneratora piemēri bez dublēšanās programmā Excel VBA

Koda rakstīšana programmā Visual Basic Editor

Uz ģenerēt nejaušus skaitļus bez dublikātiem. , mums ir nepieciešams atvērts un rakstīt VBA kodu in the Visual Basic redaktors. Sekojiet līdzi soļi uz atvērts . Visual Basic redaktors un uzrakstiet tajā kodu.

  • Dodieties uz Izstrādātājs cilnē Excel lente .
  • Noklikšķiniet uz . Visual Basic opcija.

  • In the Visual Basic lietojumprogrammām logā noklikšķiniet uz Ievietot nolaižamo logu uz atlasīt . Jauns modulis iespēja.

Tagad ielieciet savu kods iekšpusē vizuālais koda redaktors un nospiediet F5 uz palaist to.

1. VBA Rnd funkcijas izmantošana, lai ģenerētu nejaušu skaitli bez dubultskaitļiem

Portāls Rnd funkcija tiek izmantots Excel VBA uz ģenerēt nejaušus skaitļus kas ir starp 0 un 1 ekskluzīvs.

Uzdevums : Ģenerēt 10 nejaušus skaitļus starp 0 un 1 vietnē šūnas A1:A10.

Kods : Ievietot šādus elementus. kods in the Visual Basic redaktors un nospiediet F5 uz palaist 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 

Izvades : Iepriekš redzamajā ekrānšāviņas attēlā redzams 10 unikāli izlases numuri in the 0 un 1.

Koda skaidrojums:

Šajā kodā mēs izmantojām Rnd funkcija uz ievietot nejaušus skaitļus in the šūnu diapazons A1:A10 . pirms ievietošana a jauns numurs , mēs izmantojām Do kamēr cilpa uz apskatīt par numurs in the iepriekš noteikts šūnu diapazons (A1:A10) vai tas jau eksistē vai ne Lai pārbaudītu pastāvēšana no numurs in the šūnu diapazons katru reizi mēs konfigurējām kodu ar COUNTIF funkcija , Šī funkcija pārbaudes a jauns nejaušs skaitlis in the saraksts no jau esošajiem skaitļiem pirms to ievietošanas.

Lasīt vairāk: Excel formula nejauša skaitļa ģenerēšanai (5 piemēri)

2. Nejaušo skaitļu ģenerators definētai apakšējai un augšējai robežai bez dublikātiem

Uz ģenerēt nejaušus skaitļus ietvaros definēts diapazons , mums ir jāiestata apakšējā robeža un augšējā robeža mūsu VBA kodā. Informācijas nolūkā. apakšējā robeža ir mazākais skaits un augšējā robeža ir lielākais skaits in the diapazons nejaušo skaitļu ģeneratoram. Mēs varam izmantot šādu kodu. formula mūsu kodā.

(augšējā robeža - apakšējā robeža + 1) * Rnd + apakšējā robeža

2.1 Nejaušo skaitļu ģenerators - decimālskaitļi

Uzdevums : Ģenerēt 10 nejaušus skaitļus starp 10 un 20 vietnē šūnas A1:A10.

Kods : Ievietot šādus elementus. kods in the Visual Basic redaktors un nospiediet F5 uz palaist 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 Beigas beigas Sub 

Izvades : Iepriekš redzamajā ekrānšāviņas attēlā redzams 10 unikāli izlases numuri in the diapazonā no 1 līdz 10.

2.2 Nejaušo skaitļu ģenerators - vesels skaitlis

Šajā attēlā mēs izmantosim VBA funkcija Int uz noņemt . frakcionālā daļa no nejauši skaitļi .

Uzdevums : Ģenerēt 20 nejaušus veselos skaitļus starp 1 un 20 vietnē šūnas A1:B10.

Kods : Ievietot šādus elementus. kods in the Visual Basic redaktors un nospiediet F5 uz palaist 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) CilpaRng.Value = randomNumber Next End Sub 

Izvades : Iepriekš redzamajā ekrānšāviņas attēlā redzams 20 unikāli nejauši veseli skaitļi in the diapazonā no 1 līdz 20.

Lasīt vairāk: Gadījuma skaitļu ģenerators programmā Excel bez atkārtojumiem (9 metodes)

Līdzīgi lasījumi

  • Gadījuma skaitļu ģenerators ar datu analīzes rīku un funkcijām programmā Excel
  • Kā ģenerēt nejaušus datus programmā Excel (9 vienkāršas metodes)
  • Gadījuma 5 ciparu skaitļu ģenerators programmā Excel (7 piemēri)
  • 4 ciparu skaitļu ģenerators programmā Excel (8 piemēri)
  • Gadījuma skaitļa ģenerēšana no saraksta programmā Excel (4 veidi)

3. Unikāla nejaušo skaitļu ģeneratora decimāldaļu vietu norādīšana programmā Excel VBA

Mēs varam izmantot Apaļā funkcija mūsu kodā uz norādiet . numurs no decimālskaitļi aiz komata in the nejauši ģenerēti unikāli numuri. . sintakse funkcijas ir-

Round(izteiksme, [numdecimalplaces])

Mums ir nepieciešams norādiet . 2. arguments saskaņā ar mūsu prasība .

Uzdevums : Ģenerēt 20 nejaušus skaitļus ar 2 zīmēm aiz komata starp 1 un 20 vietnē šūnas A1:B10.

Kods : Ievietot šādus elementus. kods in the Visual Basic redaktors un nospiediet F5 uz palaist 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 

Izvades : Iepriekš redzamajā ekrānšāviņas attēlā redzams 20 unikāli nejauši veseli skaitļi ar 2 zīmēm aiz komata in the diapazonā no 1 līdz 20.

Lasīt vairāk: Gadījuma skaitļa ģenerēšana programmā Excel ar decimāldaļām (3 metodes)

4. Izstrādājiet lietotāja formu nejaušu skaitļu ģeneratoram bez dublēšanās programmā Excel VBA

Šajā attēlā mēs parādīsim, kā izmantot Lietotāja veidlapa vietnē Excel VBA uz ģenerēt nejaušus skaitļus ar nav dublikātu .

Uzdevums: Ģenerēt 20 nejaušus skaitļus šūnu diapazonā A1:B10 izmantojot Lietotāja veidlapa ar ievades vērtības (i) apakšējā robeža (ii) augšējā robeža (iii) decimālzīmju skaits.

Izveidojiet lietotāja veidlapu:

Veiciet tālāk norādītās darbības, lai izveidotu Lietotāja veidlapa ar mūsu vēlamie ievades lauki .

  • Dodieties uz Izstrādātājs cilnē Excel lente .
  • Noklikšķiniet uz . Visual Basic opcija.

  • In the Visual Basic lietojumprogrammām logā noklikšķiniet uz Ievietot nolaižamo logu uz atlasīt . Lietotāja veidlapa iespēja.

  • In the Lietotāja veidlapas pievienošana a etiķete .
  • Virsraksts etiķete LowerBound īpašībās.

  • Pievienot divi vairāk etiķetes ar nosaukumu Upperbund un DecimalPlaces .

  • Tagad pievienojiet trīs teksta logi in the Lietotāja veidlapa .

  • Šajā posmā, pievienot a CommandButton un nosauciet to Izveidot .

  • Tagad, dubultklikšķi . CommandButton un ielieciet šādu kods in the koda redaktors .
 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 

  • Preses F5 uz palaist . kods un Lietotāja veidlapa ir parādījās .
  • Ievietojiet apakšējā robeža , augšējā robeža, un numurs no decimālskaitļi aiz komata in the Lietotāja veidlapa un nospiediet Izveidot pogu .

Izvades : In šūnas A1: B10 , ir 20 izlases numuri ar 2 zīmes aiz komata in the diapazonā no 1 līdz 30.

Lasīt vairāk: Kā programmā Excel ģenerēt nejaušus skaitļus bez dublēšanās (7 veidi)

Lietas, kas jāatceras

  • Mēs varētu izmantot arī Fiksēt funkciju tā vietā, lai Int funkcija uz ģenerēt unikālus veselos skaitļus . Funkcija noņem . frakcionālā daļa no numurs tāpat kā Int funkcija .

Secinājums

Tagad mēs zinām, kā ģenerēt unikālus nejaušus skaitļus, izmantojot VBA programmā Excel, izmantojot piemērotus piemērus. Cerams, ka tas palīdzēs jums pārliecinošāk izmantot šo funkcionalitāti. Jebkādus jautājumus vai ieteikumus neaizmirstiet uzdot komentāru laukā zemāk.

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.