Hvis du vil generere en liste over unikke tilfældige tal, kan du bruge RANDBETWEEN -funktioner og VBA RND. I denne artikel genererer vi 3 unikke tal fra den medfølgende liste.
Du kan finde det originale spørgsmål her
Spørgsmål: Jeg vil have en makro til at generere en liste med 3 tilfældige tal fra en liste med numre, der er gemt i kolonne A. Der er en betingelse for, at VBA -kode skal tages hånd om. Betingelsen er, at der er 3 tal, der findes i kolonne B, derfor skal makroen oprette en liste med tal, der ikke er forekommet én gang i kolonne B. På denne måde kan vi have en liste over unikke tal i kolonne B & C.
Følgende er det øjebliksbillede af eksemplet, vi har:
For at få listen over unikke tilfældige tal; vi skal følge nedenstående trin for at starte VB -editor
- Klik på fanen Udvikler
- Vælg Visual Basic fra kodegruppen
- Kopier nedenstående kode i standardmodulet
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 at køre makroen kan vi trykke på F5 -tasten fra tastaturet, hvis du er aktiv på Visual Basic Editor's skærm
- En anden måde at køre makroen på er ved hjælp af "ALT + F8" -tasten; vælg makroen og klik på knappen Kør
- Når vi kører VBA -koden, genereres den unikke liste med numre automatisk
Kode Forklaring:
I ovenstående kode vil vi bruge RND & INT -funktionen sammen med For loop & Do loop for at få resultatet.
- Vi erklærer Dim ws som regneark; formålet med at erklære ws som regneark er, at vi kun ønsker, at koden skal køre på et specifikt regneark, dvs. tal i vores eksempel
- Dim RandomNum As Long: dette gemmer de unikke tal
- Set ws = ThisWorkbook.Sheets ("Numbers"): denne linje sikrer, at koden kun kører på Numbers -ark
- Den næste kodelinje vil bruge With -sætning
- ar = .Range ("A" & Rows.Count) .End (xlUp) .Række: denne linje gemmer den sidste celle i kolonne A (24 i vores eksempel)
- .Range ("C1: C3"). ClearContents: denne linje sletter alt eksisterende indhold i område C1: C3
- Dernæst kører vi For loop fra 1 til 3 gange med Do Loop for at generere liste over tilfældige tal og kontrollere ingen dubletter i eksisterende område, dvs. kolonne B
Konklusion: Vi kan generere en liste over forskellige tilfældige tal fra en liste i Microsoft excel med små justeringer i ovenstående VBA -kode.
Hvis du kunne lide vores blogs, kan du dele den med dine venner på Facebook. Og også du kan følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre, supplere eller innovere vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet