Hvis du vil generere en liste med unike tilfeldige tall, kan du bruke RANDBETWEEN -funksjoner og VBA RND. I denne artikkelen vil vi generere 3 unike tall fra listen.
Du finner det originale spørsmålet her
Spørsmål: Jeg vil at en makro skal generere en liste med 3 tilfeldige tall fra en liste med tall som er lagret i kolonne A. Det er en betingelse som VBA -koden må tas vare på. Betingelsen er at det er tre tall som finnes i kolonne B, derfor må makroen lage en liste med tall som ikke har forekommet én gang i kolonne B. På denne måten kan vi ha en liste over unike tall i kolonne B & C.
Følgende er øyeblikksbildet av eksemplet vi har:
For å få listen over unike tilfeldige tall; vi må følge trinnene nedenfor for å starte VB -editor
- Klikk på kategorien Utvikler
- Velg Visual Basic fra kodegruppen
- Kopier koden nedenfor i standardmodulen
Sub RandomNumbers () Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets ("Numbers") With ws ar = .Range ("A" & Rows.Count ) .End (xlUp) .Row .Range ("C1: C3"). ClearContents For i = 1 To 3 Do RandomNum = Int ((1 - ar + 1) * Rnd + ar) myVal = .Range ("A" & RandomNum.
- For å kjøre makroen, kan vi trykke F5 -tasten fra tastaturet hvis du er aktiv på Visual Basic Editor -skjermen
- En annen måte å kjøre makroen på er å bruke “ALT + F8” -tasten; velg makroen og klikk på Kjør -knappen
- Når vi kjører VBA -koden, blir den unike listen med tall automatisk generert
Kode Forklaring:
I koden ovenfor vil vi bruke RND & INT -funksjonen sammen med For loop & Do loop for å få resultatet.
- Vi erklærer Dim ws som regneark; Formålet med å erklære ws som regneark er at vi bare vil at koden skal kjøres på et bestemt regneark, dvs. tall i vårt eksempel
- Dim RandomNum As Long: dette vil lagre de unike tallene
- Sett ws = ThisWorkbook.Sheets ("Numbers"): denne linjen vil sikre at koden bare kjører på Numbers -ark
- Den neste kodelinjen vil bruke With -setning
- ar = .Range ("A" & Rows.Count) .End (xlUp) .Rad: denne linjen lagrer den siste cellen i kolonne A (24 i vårt eksempel)
- .Range ("C1: C3"). ClearContents: denne linjen sletter eksisterende innhold i område C1: C3
- Deretter kjører vi For loop fra 1 til 3 ganger med Do Loop for å generere liste over tilfeldige tall og sjekke ingen dubletter i eksisterende område, dvs. kolonne B
Konklusjon: Vi kan generere en liste over forskjellige tilfeldige tall fra en liste i Microsoft excel med små justeringer i VBA -koden ovenfor.
Hvis du likte bloggene våre, del den med vennene dine på Facebook. Og du kan også følge oss på Twitter og Facebook.
Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre, utfylle eller innovere arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post