Excel VBA: juhusliku numbri generaator ilma dubleerimata (4 näidet)

  • Jaga Seda
Hugh West

Selles artiklis on esitatud 4 näidet juhusliku arvu generaator dubleerimata, kasutades VBA-d Excelis. Siinkohal kasutame Exceli sisseehitatud funktsiooni Rnd, et seadistada oma koodi. Sukeldume näidetesse, et õppida unikaalsete juhuslike numbrite genereerimise tehnikaid.

Lae alla praktiline töövihik

Lae alla see harjutusvihik, et seda artiklit lugedes harjutada.

Juhuslik numbrigeneraator ilma duplikaatideta.xlsm

4 näidet juhusliku numbrigeneraatori kohta ilma duplikaatideta Excel VBAs

Koodi kirjutamine Visual Basic'i redaktoris

aadressile genereerida juhuslikke numbreid ilma duplikaatideta peame avatud ja kirjutada VBA koodi aastal Visual Basic toimetaja. Järgige sammud aadressile avatud . Visual Basic toimetaja ja kirjutage sinna koodi.

  • Minge Arendaja vahekaart Exceli lint .
  • Klõpsake . Visual Basic valik.

  • In the Visual Basic rakenduste jaoks aknas, klõpsake nuppu Sisesta rippmenüü aadressile valige . Uus moodul võimalus.

Nüüd pane oma kood sees visuaalne koodiredaktor ja vajutage F5 aadressile käivitada seda.

1. VBA Rnd funktsiooni kasutamine juhusliku numbri genereerimiseks ilma duplikaatideta

The Rnd funktsioon kasutatakse Excel VBA aadressile genereerida juhuslikke numbreid mis on vahemikus 0 ja 1 eksklusiivne.

Ülesanne : Genereeri 10 juhuslikku numbrit vahel. 0 ja 1 aadressil lahtrid A1:A10.

Kood : Sisesta järgmine kood aastal Visual Basic toimetaja ja vajutage F5 aadressile käivitada seda.

 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äljund : Ülaltoodud ekraanipilt näitab 10 unikaalset juhuslikku numbrit aastal vahemikus 0 ja 1.

Koodi selgitus:

Selles koodis kasutasime Rnd funktsioon aadressile sisestada juhuslikke numbreid aastal rakkude vahemik A1:A10 . enne sisestamine a uus number , kasutasime me Do While Loop aadressile vaata jaoks number aastal etteantud lahtrivahemik (A1:A10) kas see on juba olemas või mitte . Kontrollida olemasolu kohta number aastal rakkude vahemik iga kord konfigureerisime koodi koos COUNTIF funktsioon , See funktsioon kontrollib a uus juhuslik number aastal nimekiri aadressilt juba olemasolevaid numbreid enne selle sisestamist.

Loe edasi: Exceli valem juhusliku numbri genereerimiseks (5 näidet)

2. Juhuslik numbrigeneraator määratletud alumise ja ülemise piiri jaoks ilma duplikaatideta

aadressile genereerida juhuslikke numbreid jooksul määratletud vahemik , peame seadma lowerbound ja upperbound meie VBA-koodis. Teavitamiseks võib kasutada lowerbound on väikseim arv ja upperbound on suurim arv aastal vahemik juhusliku numbri generaatori jaoks. Me võime kasutada järgmist valem meie koodis.

(upperbound - lowerbound + 1) * Rnd + lowerbound

2.1 Juhuslik numbrigeneraator - kümnendsüsteem

Ülesanne : Genereeri 10 juhuslikku numbrit vahel. 10 ja 20 aadressil lahtrid A1:A10.

Kood : Sisesta järgmine kood aastal Visual Basic toimetaja ja vajutage F5 aadressile käivitada seda.

 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äljund : Ülaltoodud ekraanipilt näitab 10 unikaalset juhuslikku numbrit aastal vahemikus 1 ja 10.

2.2 Juhuslik numbrigeneraator - täisarvud

Selles illustratsioonis kasutame me funktsiooni VBA Int funktsioon aadressile eemaldada . murdosa alates juhuslikud numbrid .

Ülesanne : Loo 20 juhuslikku täisarvu numbrit vahel. 1 ja 20 aadressil lahtrid A1:B10.

Kood : Sisesta järgmine kood aastal Visual Basic toimetaja ja vajutage F5 aadressile käivitada seda.

 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äljund : Ülaltoodud ekraanipilt näitab 20 unikaalset juhuslikku täisarvu numbrit aastal vahemikus 1 ja 20.

Loe edasi: Juhuslik numbrigeneraator Excelis ilma kordusteta (9 meetodit)

Sarnased lugemised

  • Juhuslik numbrigeneraator koos andmeanalüüsi tööriista ja funktsioonidega Excelis
  • Kuidas genereerida juhuslikke andmeid Excelis (9 lihtsat meetodit)
  • Juhuslik 5-kohaline numbrigeneraator Excelis (7 näidet)
  • Juhuslik 4-kohaline numbrigeneraator Excelis (8 näidet)
  • Genereeri juhuslik number Exceli nimekirjast (4 võimalust)

3. Määrake kümnendkohtade määramine unikaalse juhusliku numbri generaatori jaoks Excel VBAs

Me võime kasutada Ümmargune funktsioon meie koodis, et täpsustada . number aadressilt kümnendkohtade arv aastal juhuslikult genereeritud unikaalsed numbrid . süntaks funktsioon on-

Round(expression, [numdecimalplaces])

Me peame täpsustada . 2. argument vastavalt meie nõue .

Ülesanne : Genereeri 20 juhuslikku arvu 2 kümnendkohaga vahel. 1 ja 20 aadressil lahtrid A1:B10.

Kood : Sisesta järgmine kood aastal Visual Basic toimetaja ja vajutage F5 aadressile käivitada seda.

 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äljund : Ülaltoodud ekraanipilt näitab 20 unikaalset juhuslikku täisarvu 2 kümnendkohaga aastal vahemikus 1 ja 20.

Loe edasi: Genereeri juhuslik number Excelis koos kümnendkohtadega (3 meetodit)

4. Arendada juhusliku numbrigeneraatori kasutajavormi ilma duplikaatideta Excel VBAs

Selles illustratsioonis näitame, kuidas kasutada UserForm aadressil Excel VBA aadressile genereerida juhuslikke numbreid koos dubleeringuid ei ole .

Ülesanne: Genereeri 20 juhuslikku numbrit rakkude vahemikus A1:B10 kasutades UserForm koos sisendväärtused (i) lowerbound (ii) upperbound (iii) kümnendkohtade arv.

Loo UserForm:

Järgige alljärgnevaid samme, et luua UserForm koos meie soovitud sisendväljad .

  • Minge Arendaja vahekaart Exceli lint .
  • Klõpsake . Visual Basic valik.

  • In the Visual Basic rakenduste jaoks aknas, klõpsake nuppu Sisesta rippmenüü aadressile valige . UserForm võimalus.

  • In the UserForm add a silt .
  • Pealkiri silt nagu LowerBound omadustes.

  • Lisa kaks rohkem sildid nimega Upperbund ja DecimalPlaces .

  • Nüüd lisage kolm tekstikasti aastal UserForm .

  • Selles etapis, lisada a CommandButton ja nimetage see Genereeri .

  • Nüüd, topeltklõps . CommandButton ja panna järgmine kood aastal koodiredaktor .
 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 

  • Press F5 aadressile käivitada . kood ja UserForm on ilmus .
  • Pane lowerbound , ülemine piir, ja number aadressilt kümnendkohtade arv aastal UserForm ja vajutage Nupu genereerimine .

Väljund : In lahtrid A1:B10 , on olemas 20 juhuslikku numbrit koos 2 kohta pärast koma aastal vahemikus 1 kuni 30.

Loe edasi: Kuidas genereerida juhuslikke numbreid ilma duplikaatideta Excelis (7 võimalust)

Asjad, mida meeles pidada

  • Me võiksime kasutada ka Fikseeri funktsioon asemel Int funktsioon aadressile genereerida unikaalseid täisarvu numbreid Funktsioon eemaldab . murdosa a number just nagu Int funktsioon .

Kokkuvõte

Nüüd teame, kuidas luua unikaalseid juhuslikke numbreid VBA abil Excelis sobivate näidete abil. Loodetavasti aitab see teil funktsionaalsust kindlamalt kasutada. Kui teil on küsimusi või ettepanekuid, ärge unustage neid allpool olevasse kommentaarikasti panna.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.