Sadržaj
Ovaj članak ilustruje 4 primjera generatora slučajnih brojeva bez duplikata koristeći VBA u Excelu. Ovdje ćemo koristiti Excelovu ugrađenu Rnd funkciju za konfiguriranje našeg koda. Uronimo u primjere kako bismo naučili tehnike generiranja jedinstvenih slučajnih brojeva.
Preuzmite radnu svesku za vježbanje
Preuzmite ovu radnu svesku za vježbanje da biste vježbali dok čitate ovaj članak.
Generator slučajnih brojeva bez duplikata.xlsm
4 primjera generatora slučajnih brojeva bez duplikata u Excel VBA
Napišite kod u Visual Basic Editor-u
Da generirate nasumične brojeve bez duplikata , moramo otvoriti i napisati VBA kod u vizuelnom osnovnom uređivaču. Pratite korake da otvorite vizualni osnovni uređivač i tamo upišite neki kod.
- Idite na <1 Kartica>Developer sa Excel trake .
- Kliknite opciju Visual Basic.
- U prozoru Visual Basic For Applications , kliknite na Insert padajući meni da odaberete Novi modul opcija.
Sada stavite svoj kod unutar vizualnog uređivača koda i pritisnite F5 do pokreni it.
1. Upotreba VBA Rnd funkcije za generiranje slučajnog broja bez duplikata
Rnd funkcija se koristi u Excel VBA do generirajte nasumične brojeve koji su između 0 i 1 isključivi.
Zadatak : Generiraj 10 slučajnih brojeva između 0 i 1 u ćelijama A1:A10.
Kôd : Umetnite sljedeći kod u visual basic editor i pritisnite F5 za pokreni to.
4469
Izlaz : Gornji snimak ekrana prikazuje 10 jedinstvenih nasumičnih brojeva u rasponu od 0 i 1.
Objašnjenje koda:
U ovom kodu smo koristili Rnd funkciju za ubacite nasumične brojeve u opseg ćelija A1:A10 . Prije umetanja a novog broja , koristili smo Do While Loop da tražimo broj u predefinirani raspon ćelija (A1:A10) bilo da već postoji ili ne . Da bismo svaki put provjerili postojanje broja broja u opspu ćelija , konfigurirali smo kod sa COUNTIF funkcijom , ovu funkciju provjerava a novi slučajni broj na listi od već postojećih brojeva prije nego što ga ubaci.
Pročitajte više : Excel formula za generiranje slučajnog broja (5 primjera)
2. Generator slučajnih brojeva za definirane donje i gornje granice bez duplikata
Da generiramo slučajne brojeve unutar definiranog raspona , moramo postavite donju granicu i gornju granicu u našem VBA kodu. Za informacije, donja granica je najmanji broj a gornja granica je najveći broj u opseg za generator slučajnih brojeva. Možemo koristiti sljedeću formulu u našem kodu.
(gornja granica – donja granica + 1) * Rnd + donja granica
2.1 Slučajno Generator brojeva- decimalni
Zadatak : Generiraj 10 slučajnih brojeva između 10 i 20 u ćelije A1:A10.
Kôd : Umetnite sljedeći kod u visual basic editor i pritisnite F5 za pokreni to.
2110
Izlaz : Gornji snimak ekrana prikazuje 10 jedinstvenih slučajnih brojeva u rasponu od 1 i 10.
2.2 Generator slučajnih brojeva - cijeli broj
U ovoj ilustraciji, koristit ćemo VBA Int funkcija za uklanjanje razlomka iz slučajnih brojeva .
Zadatak : Generirajte 20 nasumičnih cijelih brojeva između 1 i 20 u ćelijama A1:B10.
Kôd : Umetnite sljedeći kod u visual basic editor i pritisnite F5 za pokreni it.
3530
Izlaz : Gornji snimak ekrana prikazuje 20 jedinstvenih nasumičnih cijelih brojeva u rasponu od 1 i 20.
Pročitajte više: Generator slučajnih brojeva u Excelu bez ponavljanja (9 metoda)
Slična očitanja
- Generator slučajnih brojeva s alatom za analizu podataka i funkcijama u Excelu
- Kako Generirajte nasumične podatke u Excelu (9Jednostavne metode)
- Generator nasumičnih 5 cifara u Excelu (7 primjera)
- Generator nasumičnih 4 cifara u Excelu (8 primjera)
- Generiraj nasumični broj sa liste u Excelu (4 načina)
3. Odredite decimalna mjesta za Generator jedinstvenih slučajnih brojeva u Excel VBA
Možemo koristiti Okrugla funkcija u našem kodu da specificiramo broj od decimala u nasumično generiranim jedinstvenim brojevima . sintaksa funkcije je-
Round (izraz, [numdecimalplaces])
Moramo specificirati 2. argument prema našem zahtjevu .
Zadatak : Generiraj 20 slučajnih brojeva sa 2 decimalna mjesta između 1 i 20 u ćelijama A1:B10.
Kôd : Umetnite sljedeći kod u visual basic editor i pritisnite F5 za pokreni it.
1470
Izlaz : Gornji snimak ekrana prikazuje 20 jedinstvenih nasumičnih cijelih brojeva sa 2 decimalna mjesta u rasponu od 1 i 20.
Pročitajte više: Generirajte slučajni broj u Excelu s decimalima (3 metode)
4. Razvijte korisnički obrazac za generator slučajnih brojeva bez duplikata u Excel VBA
U ovoj ilustraciji ćemo pokazati kako koristiti korisnički obrazac u Excel VBA da generira slučajne brojeve sa bez duplikata .
Zadatak: Generiraj20 nasumičnih brojeva u rasponu ćelija A1:B10 koristeći UserForm sa ulaznim vrijednostima (i) donja granica (ii) gornja granica (iii) broj decimalnih mjesta.
Kreirajte korisnički obrazac:
Slijedite dolje navedene korake da kreirate korisnički obrazac sa našim željenim poljima za unos .
- Idite na karticu Razvojnik sa Excel trake .
- Kliknite Vizuelni Osnovna opcija.
- U prozoru Visual Basic za aplikacije kliknite na Umetni padajući izbornik za odaberite opciju Korisnički obrazac .
- U Korisnički obrazac dodajte a label .
- Označite oznaku kao LowerBound u svojstvima.
- Dodajte dvije još oznake pod nazivom Gornji pojas i DecimalPlaces .
- Sada dodajte tri TextBoxa u UserForm .
- U ovoj fazi, dodajte a CommandButton i nazovite ga Generiraj .
- Sada, dvaput kliknite CommandButton i stavite sljedeći kod u uređivač kodova .
1473
- Pritisnite F5 da pokrenite kod i UserForm se pojavio .
- Stavite donju granicu , gornju granicu, i broj od decimala u Korisničkom obrascu i pritisnite GenerirajDugme .
Izlaz : U ćelijama A1:B10 , ima 20 nasumičnih brojevi sa 2 decimalna mjesta u rasponu od 1 do 30.
Pročitajte više: Kako generirati slučajne brojeve bez duplikata u Excelu (7 načina)
Stvari koje treba zapamtiti
- Mogli bismo koristiti i Popravi funkciju umjesto Int funkcije da generira jedinstvene cjelobrojne brojeve . Funkcija uklanja razlomak od broja baš kao Int funkcija .
Zaključak
Sada znamo kako generirati jedinstvene slučajne brojeve koristeći VBA u Excelu uz pomoć odgovarajućih primjera. Nadamo se da će vam to pomoći da pouzdanije koristite funkcionalnost. Bilo kakva pitanja ili sugestije ne zaboravite ih staviti u polje za komentare ispod.