VBA Randomize

Randomize-Anweisung in VBA

Die VBA-Randomize- Anweisung ist eine einfache Einzeiler-Anweisung, die wir vor dem Anwenden der RND-Funktion hinzufügen. Bei jedem erneuten Öffnen einer Arbeitsmappe stellt die Randomize-Anweisung der RND-Funktion abhängig von der Systemzeit des Computers eine neue Startnummer zur Verfügung.

Bevor ich über die Randomize-Anweisung spreche, möchte ich Ihnen eine einfache RND-Funktion mit VBA vorstellen.

Als Arbeitsblattfunktion „RAND“ generiert auch in VBA „RND“ Zufallszahlen, die größer als 0, aber kleiner als 1 sind.

Schauen Sie sich nun die Syntax der Funktion „RND“ an.

[Nummer]: Wir können das Argument auf drei Arten übergeben.

  • Wenn wir die Zahl als <0 übergeben, wird jedes Mal dieselbe Zufallszahl generiert.
  • Wenn wir die Zahl als 0 übergeben, wird die zuletzt angegebene Zahl wiederholt.
  • Wenn wir die Zahl> 0 übergeben, erhalten Sie immer wieder andere Zufallszahlen, dh die nächste Zufallszahl in der Sequenz.

Beispiel

Ein Beispiel finden Sie im folgenden Code.

Code:

 Sub RND_Example () Debug.Print Rnd End Sub 

Wenn ich den Code im unmittelbaren Fenster ausführe, sehe ich die folgende Nummer.

Wenn ich diesen Code noch dreimal ausführe, sehe ich die folgenden Zahlen.

Jetzt werde ich die Arbeitsmappe schließen und erneut öffnen.

Jetzt gehe ich zurück zum Visual Basic Editor-Fenster.

Jetzt ist das unmittelbare Fenster leer und sauber.

Jetzt werde ich den Code noch einmal viermal ausführen und sehen, welche Zahlen wir im unmittelbaren Fenster erhalten.

Wir haben die gleichen Zahlen wie oben.

Dies sieht nicht nach einer Zufallszahl aus, da jedes Mal, wenn wir die Datei erneut öffnen, die gleichen Zahlen von vorne beginnen.

Wie generieren wir Zufallszahlen, unabhängig davon, ob die Arbeitsmappe erneut geöffnet wurde oder nicht?

Wir müssen die "Randomize" -Anweisung verwenden.

Wie verwende ich die VBA Randomize-Anweisung?

Sie können diese VBA Randomize Excel-Vorlage hier herunterladen - VBA Randomize Excel-Vorlage

Beispiel 1

Um Zufallszahlen zu erhalten, müssen wir lediglich den einfachen Einzeiler „Randomize“ vor der RND-Funktion hinzufügen.

Code:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Jetzt werde ich den Code 4 Mal ausführen und sehen, was ich bekomme.

Es hat die obigen Zahlen in meinem lokalen Fenster generiert.

Jetzt werde ich die Datei schließen und die Datei erneut öffnen.

Wie üblich beginnen wir mit einer sauberen Tafel im visuellen Grundfenster.

Jetzt werde ich den Code erneut ausführen und sehen, welche Zahlen wir diesmal erhalten.

Beeindruckend!!! Diesmal haben wir unterschiedliche Zahlen.

Da wir die Anweisung Randomize vor der RND-Funktion hinzugefügt haben, erhalten wir bei jedem erneuten Öffnen der Datei unterschiedliche Zufallszahlen.

Das sieht aus wie eine Zufallszahl, nicht wahr ???

Beispiel 2

Zufallszahlen größer als eins

Wie wir gesehen haben, kann die Funktion „RND“ nur Zahlen von 0 bis 1 erzeugen. Um jedoch Zahlen zu generieren, die größer als eine Zufallszahl sind, müssen wir "RANDOM BETWEEN" verwenden, das mit der Arbeitsblatt-Funktionsklasse verfügbar ist.

Um Zufallszahlen größer als eins zu generieren, müssen wir den folgenden Code verwenden.

Code:

 Sub Randomize_2 () Randomize Debug.Print Rnd * 100 End Sub 

Jetzt werde ich den Code ausführen und sehen, was wir bekommen.

Auf diese Weise können wir die Anweisung "Randomize" in VBA verwenden, um bei jedem erneuten Öffnen der Excel-Datei Zufallszahlen zu generieren.