Wie generiert man zufallszahlen in vba?

In VBA können Sie verschiedene Methoden zum Generieren einer Zufallszahl in Excel verwenden. In diesem Artikel werden wir sie alle einzeln betrachten.

RND-Funktion

Um eine Zufallszahl zu generieren, gibt es in VBA eine Funktion namens RND . Diese Funktion bedeutet „zufällig“ und wenn Sie diese Funktion im Code verwenden, gibt sie eine Zufallszahl zwischen 0 und 1 zurück. In RND müssen Sie kein Argument angeben.

 Range("A1") = Rnd()

Der obige Code verwendet es, um eine Zufallszahl in A1 zu erhalten, und es wurde 0,705547521 zurückgegeben.

Generiere eine Zufallszahl in VBA

Wenn Sie es jedoch für einen gesamten Bereich verwenden, gibt es im gesamten Bereich dieselbe Zufallszahl zurück, sodass es nicht mehr zum Generieren von Zufallszahlen mehr als einmal verwendet werden kann.

Gibt die gleiche Zufallszahl zurück

Nun, hier macht es keinen Sinn, es zu verwenden, oder? Aber es gibt eine Lösung, die Sie verwenden können: FOR NEXT LOOP .

Für die nächste Schleife verwenden

Im obigen Code haben Sie eine Schleife, die ausgehend von der ausgewählten Zelle 10 Zellen (eine nach der anderen) durchläuft und eine Zufallszahl hinzufügt.

Hier ist der vollständige Code:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Zufallszahl zwischen zwei Zahlen

Wenn Sie eine Zufallszahl zwischen zwei definierten Zahlen generieren möchten, müssen Sie in diesem Fall Code mit zwei VBA-Funktionen ( RND + INT ) schreiben. Der Code für diese Formel würde wie folgt aussehen.

Zufallszahl zwischen zwei Zahlen
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Wenn Sie dieses Makro ausführen , verwendet RND die von Ihnen festgelegte Höchstzahl und Mindestzahl, um die Zufallszahl zu generieren, und INT entfernt die Dezimalstelle.

rnd-use-the-max-and-min-number

Verwenden von Arbeitsblattfunktionen im VBA-Code zum Generieren einer Zufallszahl

In VBA können Sie auf Arbeitsblattfunktionen zugreifen und diese verwenden, um durch Angabe der Argumente ein Ergebnis zu erhalten. Zwei Tabellenkalkulationsfunktionen können Ihnen dabei helfen, im Ergebnis eine Zufallszahl zu erhalten.

  • RandBetween
  • RandTableau

Bevor Sie diese Funktionen verwenden, stellen Sie sicher, dass Sie die Argumente verstehen, die Sie festlegen müssen. Im folgenden Code haben Sie nun RANDBETWEEN, das eine Zufallszahl zwischen zwei Zahlen generiert.

use-randbetween-generiert-eine-Zufallszahl-zwischen-zwei-Zahlen
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Hier beträgt die maximale Anzahl 2000 und die minimale Anzahl 1000. Ebenso können Sie RANDARRAY verwenden, eine dynamische Array-Funktion.

Hier ist der Code.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
Verwenden Sie Randarray, das eine dynamische Array-Funktion ist

Wenn Sie sich die Syntax des RANDARRAY ansehen, werden Sie feststellen, dass Sie Zufallszahlen in einem Ganzzahlbereich eingeben können, was mit allen oben besprochenen Methoden nicht möglich ist.

Randarray-Syntax

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert