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:

img1

===

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

img2

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

img3

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

img4

  • Während wir den VBA-Code ausführen, wird die eindeutige Liste der Nummern automatisch generiert

img5

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)

Range („C1: C3“). ClearContents: Diese Zeile löscht alle vorhandenen Inhalte im Bereich C1: C3. Als Nächstes führen wir die For-Schleife 1 bis 3 Mal mit Do Loop aus, um eine Liste von Zufallszahlen zu generieren und keine Duplikate zu überprüfen im vorhandenen Bereich, dh Spalte B Schlussfolgerung: Wir können eine Liste unterschiedlicher Zufallszahlen aus alist in Microsoft Excel mit kleinen Schwächen im obigen VBA-Code generieren.

image 48

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]