Generieren Sie Zufallszahlen mit der VBA RND-Funktion

Inhaltsverzeichnis

Excel VBA Zufallszahlen

Um Zufallszahlen in vba zu generieren, haben wir eine eingebaute Funktion namens RND . Es ist nur ein Argument und eine Zahl erforderlich, um Zufallszahlen zu generieren. Dies ist auch ein optionaler Parameter. Es werden Zufallszahlen erstellt, die größer als 0 und kleiner als 1 sind.

Dies funktioniert genauso wie die Excel-Funktion „RAND“. Wie ich auch in der Arbeitsblattfunktion „RAND“ in VBA gesagt habe, können wir Zufallszahlen generieren, 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.

Wie generiere ich Zufallszahlen mit VBA-Code?

Beispiel 1

Nun sehen wir das einfache Beispiel für die Verwendung der Funktion „RND“. Befolgen Sie die folgenden Schritte, um den VBA-Code selbst zu schreiben.

Schritt 1: Deklarieren Sie die Variable in VBA als "Integer".

Code:

Sub Rnd_Example1 () Dim K As Integer End Sub

Schritt 2: Weisen Sie nun der Variablen „k“ über die Funktion „ RND “ den Wert zu .

Code:

Sub Rnd_Example1 () Dim K As Integer K = Rnd () End Sub

Schritt 3: Zeigen Sie den von der Variablen "k" zurückgegebenen Wert im Meldungsfeld an .

Code:

Sub Rnd_Example1 () Dim K As Integer K = Rnd () MsgBox K End Sub

Führen Sie nun das Excel-Makro aus und sehen Sie, was das Ergebnis ist.

Schau was passiert ist.

Das Ergebnis wird als 1 angezeigt, wobei die Funktion „RND“ nur Zahlen zurückgeben kann, die größer als Null, aber kleiner als 1 sind.

Sie müssen darüber nachdenken, was hier falsch ist.

Das Falsche ist hier die Art des Datentyps, den wir der Variablen "k" zugewiesen haben.

Wenn Sie auf die von uns deklarierte Variable zurückblicken, haben wir den Datentyp als Ganzzahl zugewiesen. Da wir die Variable als Ganzzahl zugewiesen haben, können nur die ganzen Zahlen zwischen -32768 und 32767 angezeigt werden.

Immer wenn RND die Dezimalzahl zurückgibt, konvertiert VBA die Dezimalzahl in die nächste Ganzzahl, dh 1.

Damit die Formel ordnungsgemäß funktioniert, deklarieren Sie die Variable als " Double ".

"Double" ist der Datentyp in VBA, der Dezimalwerte enthalten kann.

Code:

Sub Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub

Nun den Code und sehen, was das Ergebnis ist.

Klicken Sie auf OK und führen Sie es noch einmal aus, um das Ergebnis zu sehen.

Diesmal haben wir ein anderes Ergebnis erzielt. Da „RND“ von Natur aus eine flüchtige Funktion ist, werden bei jeder Ausführung des Codes unterschiedliche Ergebnisse reproduziert.

Beispiel 2 - Erhalten Sie jedes Mal die gleiche Zufallszahl

Wie wir im vorherigen Beispiel e gesehen haben, gibt die Funktion „RND“ das Ergebnis jedes Mal wieder, wenn wir den Code ausführen. Um immer wieder die gleiche Zufallszahl zu erhalten, müssen wir das Argument als Null übergeben.

Code:

Sub Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub

Dies wird immer wieder dieselbe Nummer erzeugen, wenn wir den Code ausführen.

Beispiel 3 - Generieren Sie eine ganze Zufallszahl

Wir können auch ganze Zahlen erzeugen, indem wir andere VBA-Funktionen oder andere Eingabenummern verwenden. Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

Sub Rnd_Example3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub

Dieser Code generiert bei jeder Ausführung des Codes zufällige ganze Zahlen mit Dezimalstellen.

Wenn Sie die ganzen Zahlen ohne Dezimalstellen betrachten, können wir den folgenden Code verwenden.

Code:

Sub Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub

Dadurch werden weiterhin die gesamten Zahlen von 1 bis 100 generiert.

Interessante Beiträge...