Excel VBA: Tilfeldig tallgenerator uten duplikater (4 eksempler)

  • Dele Denne
Hugh West

Denne artikkelen illustrerer 4 eksempler på tilfeldig tallgenerator uten duplikater ved bruk av VBA i Excel. Her bruker vi Excels innebygde Rnd-funksjon for å konfigurere koden vår. La oss dykke ned i eksemplene for å lære teknikkene for å generere unike tilfeldige tall.

Last ned øvelsesarbeidsbok

Last ned denne øvelsesarbeidsboken for å trene mens du leser denne artikkelen.

Random Number Generator uten duplikater.xlsm

4 eksempler på Random Number Generator uten duplikater i Excel VBA

Skriv kode i Visual Basic Editor

For å generere tilfeldige tall uten duplikater , må vi åpne og skrive VBA kode i visual basic editor. Følg trinnene for å åpne den visuelle grunnleggende editoren og skriv litt kode der.

  • Gå til Utvikler fanen fra Excel-båndet .
  • Klikk alternativet Visual Basic.

  • I vinduet Visual Basic For Applications klikker du på rullegardinmenyen Sett inn for å velge den Ny modul alternativ.

Legg inn koden i visuell koderedigering og trykk F5 for å kjøre det.

1. Bruk av VBA Rnd-funksjonen for å generere tilfeldige tall uten duplikater

Rnd-funksjonen brukes i Excel VBA til generer tilfeldige tall som er mellom 0 og 1 eksklusiv.

Oppgave : Generer 10 tilfeldige tall mellom 0 og 1 i cellene A1:A10.

Kode : Sett inn følgende kode i visual basic editor og trykk F5 for å kjøre det.

1603

Utgang : Skjermbildet ovenfor viser 10 unike tilfeldige tall i -området 0 og 1.

Kodeforklaring:

I denne koden brukte vi Rnd-funksjonen å sette inn tilfeldige tall i celleområdet A1:A10 . Før vi satte inn et nytt nummer , brukte vi en Do While Loop for å se etter nummeret i forhåndsdefinert celleområde (A1:A10) om det allerede eksisterer eller ikke . For å sjekke eksistensen av nummeret i celleområdet hver gang, konfigurerte vi koden med COUNTIF-funksjonen , denne funksjonen sjekker et nytt tilfeldig tall i listen over allerede eksisterende tall før det settes inn.

Les mer : Excel-formel for å generere tilfeldige tall (5 eksempler)

2. Tilfeldig tallgenerator for definert nedre og øvre grense uten duplikater

For å generere tilfeldige tall innenfor et definert område , må vi angi nedre grense og øvre grense i vår VBA-kode. For informasjon er nedre grense det laveste tallet og øvre grense er det høyeste tallet i området for tilfeldig tallgeneratoren. Vi kan bruke følgende formel i koden vår.

(øvre grense – nedre grense + 1) * Rnd + nedre grense

2.1 Tilfeldig Tallgenerator- Desimal

Oppgave : Generer 10 tilfeldige tall mellom 10 og 20 i celler A1:A10.

Kode : Sett inn følgende kode i visual basic editoren og trykk F5 for å kjøre det.

7076

Utgang : Skjermbildet ovenfor viser 10 unike tilfeldige tall i -området 1 og 10.

2.2 Random Number Generator- Heltall

I denne illustrasjonen bruker vi VBA Int funksjon for å fjerne brøkdelen fra tilfeldige tall .

Oppgave : Generer 20 tilfeldige heltall mellom 1 og 20 i cellene A1:B10.

Kode : Sett inn følgende kode i visual basic editoren og trykk F5 for å kjøre det.

3176

Utdata : Skjermbildet ovenfor viser 20 unike tilfeldige heltall i -området 1 og 20.

Les mer: Random Number Generator i Excel uten repetisjoner (9 metoder)

Lignende avlesninger

  • Rendom Number Generator med dataanalyseverktøy og funksjoner i Excel
  • Hvordan Generer tilfeldige data i Excel (9Enkle metoder)
  • Tilfeldig 5-sifret tallgenerator i Excel (7 eksempler)
  • Tilfeldig 4-sifret tallgenerator i Excel (8 eksempler)
  • Generer tilfeldig tall fra liste i Excel (4 måter)

3. Spesifiser desimalplasser for Unique Random Number Generator i Excel VBA

Vi kan bruke Round-funksjonen i koden vår for å spesifisere antall av desimaltall i de tilfeldig genererte unike tallene . syntaksen til funksjonen er-

Round(uttrykk, [talldesimalplasser])

Vi må spesifisere andre argument i henhold til vårt krav .

Oppgave : Generer 20 tilfeldige tall med 2 desimaler mellom 1 og 20 i cellene A1:B10.

Kode : Sett inn følgende kode i visual basic editoren og trykk F5 for å kjøre det.

6456

Utgang : Skjermbildet ovenfor viser 20 unike tilfeldige heltall med 2 desimaler i -området 1 og 20.

Les mer: Generer tilfeldig tall i Excel med desimaler (3 metoder)

4. Utvikle et brukerskjema for tilfeldig tallgenerator uten duplikater i Excel VBA

I denne illustrasjonen viser vi hvordan du bruker en UserForm i Excel VBA for å generere tilfeldige tall uten ingen duplikater .

Oppgave: Generer20 tilfeldige tall i celleområdet A1:B10 ved å bruke en UserForm med inndataverdiene (i) nedre grense (ii) øvre grense (iii) antall desimaler.

Opprett et brukerskjema:

Følg trinnene nedenfor for å lage et brukerskjema med våre ønskede inndatafelter .

  • Gå til Utvikler fanen fra Excel-båndet .
  • Klikk Visual Grunnleggende alternativ.

  • I vinduet Visual Basic For Applications klikker du på rullegardinmenyen Sett inn for å velge alternativet UserForm .

  • I UserForm legg til en etikett .
  • Tillegg etiketten som Lower Bound i egenskapene.

  • Legg til to til etiketter navngitt Upperbund og Desimalplasser .

  • Legg nå til tre tekstbokser i Brukerskjemaet .

  • På dette stadiet legger du til en Kommandoknapp og gir den navnet Generer .

  • dobbeltklikker du kommandoknappen og legg inn følgende kode i koderedigeringsprogrammet .
4205

  • Trykk F5 for å kjøre koden og Brukerskjemaet har dukket opp .
  • Sett inn nedre grense , øvre grense, og tallet av desimaltall i Brukerskjemaet og trykk på GenererKnapp .

Utdata : I cellene A1:B10 er det 20 tilfeldige tall med 2 desimaler i området fra 1 til 30.

Les mer: Hvordan generere tilfeldige tall uten duplikater i Excel (7 måter)

Ting å huske

  • Vi kan også bruke Fiksfunksjon i stedet for Int-funksjonen for å generere unike heltall . Funksjonen fjerner brøkdelen av et tall akkurat som Int-funksjonen .

Konklusjon

Nå vet vi hvordan vi genererer unike tilfeldige tall ved hjelp av VBA i Excel ved hjelp av passende eksempler. Forhåpentligvis vil det hjelpe deg å bruke funksjonaliteten mer selvsikkert. Eventuelle spørsmål eller forslag, ikke glem å sette dem i kommentarfeltet nedenfor.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.