Generieren Sie 3 einzigartige Zufallszahlen in Microsoft Excel
Wenn Sie eine Liste eindeutiger Zufallszahlen erstellen möchten, können Sie RANDBETWEEN-Funktionen und VBA RND verwenden. In diesem Artikel generieren wir 3 eindeutige Zahlen aus der bereitgestellten Liste.
Sie finden die Originalfrage here
Frage: Ich möchte, dass ein Makro eine Liste mit 3 Zufallszahlen aus einer Liste der in Spalte A gespeicherten Zahlen generiert. Es gibt eine Bedingung, dass der VBA-Code berücksichtigt werden muss. Die Bedingung ist, dass in Spalte B 3 Zahlen vorhanden sind. Daher muss das Makro eine Liste von Zahlen erstellen, die in Spalte B nicht einmal vorgekommen sind. Auf diese Weise können wir eine Liste eindeutiger Zahlen in Spalte B und C haben.
Das Folgende ist die Momentaufnahme eines Beispiels, das wir haben:
===
Um die Liste der eindeutigen Zufallszahlen zu erhalten; Wir müssen die folgenden Schritte ausführen, um den VB-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Codegruppe Visual Basic
aus * Kopieren Sie den folgenden Code in das Standardmodul
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).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub
Um das Makro auszuführen, können Sie die Taste F5 über die Tastatur drücken, wenn Sie im Bildschirm des Visual Basic-Editors aktiv sind. Eine andere Möglichkeit, das Makro auszuführen, ist die Verwendung der Taste „ALT + F8“. Wählen Sie das Makro aus und klicken Sie auf die Schaltfläche Ausführen
-
Während wir den VBA-Code ausführen, wird die eindeutige Liste der Nummern automatisch generiert
Code Erläuterung:
Im obigen Code verwenden wir die RND & INT-Funktion zusammen mit der For-Schleife und der Do-Schleife, um das Ergebnis zu erhalten.
-
Wir deklarieren Dim ws als Arbeitsblatt; Der Zweck der Deklaration von ws als Arbeitsblatt besteht darin, dass der Code nur auf einem bestimmten Arbeitsblatt ausgeführt werden soll, d. h.
Zahlen in unserem Beispiel Dim RandomNum As Long: Dadurch werden die eindeutigen Zahlen gespeichert. Set ws = ThisWorkbook.Sheets („Numbers“): Diese Zeile stellt sicher, dass der Code nur auf dem Zahlenblatt ausgeführt wird. In der nächsten Codezeile wird With-Anweisung ar = verwendet .Range („A“ & Rows.Count) .End (xlUp) .Row: In dieser Zeile wird die letzte Zelle in Spalte A gespeichert (in unserem Beispiel 24)
Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Sie können uns auch auf Twitter und Facebook folgen.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]