Genereer 3 unieke willekeurige getallen in Microsoft Excel

Anonim

Als u een lijst met unieke willekeurige getallen wilt genereren, kunt u RANDBETWEEN-functies & VBA RND gebruiken. In dit artikel zullen we 3 unieke nummers genereren uit de verstrekte lijst.

Je kunt de originele vraag hier vinden

Vraag: Ik wil dat een macro een lijst van 3 willekeurige getallen genereert uit een lijst met getallen die zijn opgeslagen in kolom A. Er is een voorwaarde dat er voor VBA-code moet worden gezorgd. De voorwaarde is dat er 3 nummers in kolom B voorkomen, daarom moet de macro een lijst maken met nummers die niet één keer in kolom B zijn voorgekomen. Op deze manier kunnen we een lijst met unieke nummers in kolom B & C hebben.

Hieronder volgt de momentopname van het voorbeeld dat we hebben:

Om de lijst met unieke willekeurige getallen te krijgen; we moeten de onderstaande stappen volgen om VB-editor te starten

  • Klik op het tabblad Ontwikkelaar
  • Selecteer in de codegroep Visual Basic

  • Kopieer onderstaande code in de standaard module
Sub RandomNumbers() Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Willekeurig Set ws = ThisWorkbook.Sheets("Numbers") With ws ar = .Range("A" & Rows.Count ).End(xlUp).Rij .Range("C1:C3").ClearContents For i = 1 To 3 Do RandomNum = Int((1 - ar + 1) * Rnd + ar) myVal = .Range("A" & RandomNum).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub 

  • Om de macro uit te voeren, kunnen we op de F5-toets op het toetsenbord drukken als u actief bent in het scherm van Visual Basic Editor
  • Een andere manier om de macro uit te voeren, is door de toets "ALT + F8" te gebruiken; selecteer de macro en klik op de knop Uitvoeren

  • Terwijl we de VBA-code uitvoeren, wordt de unieke lijst met nummers automatisch gegenereerd

Code Verklaring:

In de bovenstaande code gebruiken we de RND & INT-functie samen met For loop & Do loop om het resultaat te krijgen.

  • We declareren Dim ws als werkblad; het doel van het declareren van ws als werkblad is dat we alleen willen dat de code op een specifiek werkblad wordt uitgevoerd, d.w.z. getallen in ons voorbeeld
  • Dim RandomNum As Long: hiermee worden de unieke nummers opgeslagen
  • Stel ws = ThisWorkbook.Sheets("Numbers") in: deze regel zorgt ervoor dat de code alleen op het Numbers-blad wordt uitgevoerd
  • De volgende regel code gebruikt de instructie With
  • ar = .Range("A" & Rows.Count).End(xlUp).Row: deze regel slaat de laatste cel op in kolom A (24 in ons voorbeeld)
  • .Range("C1:C3").ClearContents: deze regel wist alle bestaande inhoud in het bereik C1:C3
  • Vervolgens zullen we For loop starten van 1 tot 3 keer met Do Loop om een ​​lijst met willekeurige getallen te genereren en geen duplicaten in het bestaande bereik te controleren, d.w.z. kolom B

Conclusie: We kunnen een lijst met verschillende willekeurige getallen genereren uit een lijst in Microsoft Excel met kleine aanpassingen in de bovenstaande VBA-code.

Als je onze blogs leuk vond, deel deze dan met je vrienden op Facebook. En je kunt ons ook volgen op Twitter en Facebook.

We horen graag van je, laat ons weten hoe we ons werk kunnen verbeteren, aanvullen of vernieuwen en het voor jou beter kunnen maken. Schrijf ons op de e-mailsite