Zum Hauptinhalt springen

Generieren einer Zufallszahl in einem Bereich mit VBA in Excel

In der Programmierung besteht oft die Notwendigkeit, eine Zufallszahl zu generieren. Dies kann für verschiedene Aufgaben wie das Erstellen zufälliger Daten, das Generieren zufälliger Objektpositionen usw. erforderlich sein. In Microsoft Excel können Sie die Programmiersprache VBA (Visual Basic for Applications) verwenden, um Zufallszahlen innerhalb eines angegebenen Bereichs zu generieren.

Die Hauptfunktion, die zum Generieren einer Zufallszahl in Excel verwendet werden kann, ist die Funktion Rnd(). Es gibt eine Pseudozufallszahl im Bereich von 0 bis 1 zurück. Um jedoch eine Zufallszahl im gewünschten Bereich zu erhalten, müssen Sie die Formel ändern.

Sie können die folgende Formel in VBA verwenden, um eine Zufallszahl in einem bestimmten Bereich zu generieren:

RandomNumber = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound)

Wobei upperBound die obere Grenze des Bereichs ist, lowerBound die untere Grenze des Bereichs. Wenn wir zum Beispiel eine Zufallszahl zwischen 1 und 100 erzeugen müssen, können wir die folgende Formel verwenden:

RandomNumber = Int((100 - 1 + 1) * Rnd + 1)

Auf diese Weise können Sie mit VBA in Excel eine Zufallszahl innerhalb eines bestimmten Bereichs generieren und diese für verschiedene Aufgaben verwenden.

Erzeugen einer Zufallszahl

Eine der einfachsten Möglichkeiten, eine Zufallszahl in VBA zu generieren, ist die Verwendung einer Funktion Rnd. Funktion Rnd gibt eine Zufallszahl im Bereich von 0 bis 1 zurück, wobei 0 der ausgeschlossene Wert und 1 der eingeschlossene Wert ist. Um eine Zufallszahl im gewünschten Bereich zu erhalten, multiplizieren Sie das Ergebnis der Funktion mit der Differenz zwischen den oberen und unteren Grenzen des Bereichs und addieren dann die untere Grenze.

Wenn Sie beispielsweise eine Zufallszahl zwischen 1 und 10 generieren möchten:

Dim randomNumber As IntegerrandomNumber = Int((10 - 1 + 1) * Rnd + 1)

Wo randomNumber - dies ist eine Variable, in der die generierte Zufallszahl gespeichert wird, und Int ist eine Funktion, die den Dezimalteil einer Zahl verwirft und nur den ganzzahligen Teil zurückgibt.

Wenn Sie eine Zufallszahl in einem Gleitkommabereich erzeugen möchten, können Sie die Funktion verwenden Randomize, die den Zufallszahlengenerator initialisiert, und dann die Funktion verwenden Rnd ohne Parameter. Zum Beispiel:

Dim randomFloat As DoubleRandomizerandomFloat = Rnd

In diesem Fall ist die Variable randomFloat enthält eine Zufallszahl im Bereich von 0 bis 1.

Die Erzeugung einer Zufallszahl kann in vielen Situationen nützlich sein, z. B. beim Erstellen von Testdaten, beim Simulieren von Zufallsereignissen oder bei der Spieleentwicklung. Wenn Sie die grundlegenden Methoden zum Generieren einer Zufallszahl in VBA kennen, können Sie sie erfolgreich in Ihren Projekten in Excel verwenden.

Werkzeuge zum Arbeiten mit Zufallszahlen

Integrierte RAND-Funktion

Excel verfügt über eine integrierte RAND-Funktion, die eine zufällige Dezimalzahl im Bereich von 0 bis 1 generiert. Dies kann in vielen Fällen nützlich sein, wenn Sie einen zufälligen Wert erhalten müssen.

Ganze Zufallszahlen

Wenn Sie zufällige ganze Zahlen generieren müssen, können Sie die Funktion RANDBETWEEN verwenden. Es nimmt zwei Argumente an - die untere Grenze und die obere Grenze des Bereichs, in dem die Zahl generiert werden soll. Um beispielsweise eine zufällige Ganzzahl zwischen 1 und 10 zu erhalten, können Sie die folgende Formel verwenden: RANDBETWEEN(1, 10).

Eindeutige Zufallszahlen

Wenn Sie eine Liste eindeutiger Zufallszahlen erstellen müssen, können Sie eine Schleife oder ein VBA-Makro verwenden. In VBA können Sie Arrays verwenden, um die generierten Zahlen zu speichern. Sie können dann überprüfen, ob bereits eine Zahl im Array vorhanden ist, und eine neue Zahl generieren, falls bereits vorhanden. Auf diese Weise ist es möglich, eine Liste eindeutiger Zufallszahlen zu erhalten.

Erzeugen von Zufallszahlen mit bestimmten Parametern

Wenn Sie eine Zufallszahl mit bestimmten Parametern erzeugen möchten, z. B. mit einem bestimmten Mittelwert oder einer Standardabweichung, können Sie die Funktion NORM verwenden.INV in Excel. Diese Funktion erzeugt eine Zufallszahl aus der Normalverteilung mit den angegebenen Parametern.

Andere Werkzeuge zum Generieren von Zufallszahlen

Neben den integrierten Excel-Funktionen gibt es auch andere Tools, mit denen Sie Zufallszahlen generieren können. Sie können beispielsweise zufällige Generatoren in der Programmierung verwenden, z. B. die Programmiersprache Python oder Funktionen, die in ein Datenbankmanagementsystem (DBMS) oder das Internet integriert sind.

Es ist wichtig sich daran zu erinnern, dass die vom Computer generierten Zufallszahlen tatsächlich Pseudozufallszahlen sind und vorhersehbar sein können. Wenn Sie echte Zufallszahlen benötigen, müssen Sie möglicherweise externe Zufallsquellen wie zufällige Bewegungen oder Transistoren in einem physischen Gerät verwenden.

Erstellen eines VBA-Makros zum Generieren von Zufallszahlen

In Microsoft Excel können Sie VBA-Makros (Visual Basic for Applications) verwenden, um verschiedene Aufgaben zu automatisieren, einschließlich der Generierung von Zufallszahlen in einem bestimmten Bereich.

Führen Sie die folgenden Schritte aus, um ein Makro zu erstellen, das eine Zufallszahl generiert:

  1. Öffnen Sie den Visual Basic-Editor durch Drücken einer Tastenkombination Alt + F11.
  2. Wählen Sie im Visual Basic Editor-Fenster die Registerkarte aus Einfügung und klicken Sie auf die Schaltfläche Modul, um ein neues Modul zu erstellen.
  3. Schreiben Sie im geöffneten Modulfenster den folgenden Code:
Function СлучайноеЧисло(МинЗначение As Integer, МаксЗначение As Integer) As IntegerRandomizeСлучайноеЧисло = Int((МаксЗначение - МинЗначение + 1) * Rnd + МинЗначение)End Function
  • Die Funktion Zufallszahl akzeptiert zwei Argumente: Minwert und Maxwert , die den Bereich definieren, in dem die Zufallszahl generiert wird.
  • Die Randomize-Zeichenfolge wird verwendet, um den Zufallszahlengenerator mit der aktuellen Uhrzeit zu initialisieren.
  • String Zufallszahl = Int((Maxwert ist Minwert + 1) * Rnd + Minwert) erzeugt eine Zufallszahl im angegebenen Bereich.

Nachdem Sie den Code geschrieben haben, können Sie das Visual Basic-Editor-Fenster schließen.

Um die erstellte Funktion in Excel zu verwenden, müssen Sie die Formel =Zufallszahl (Min-Wert, Max-Wert) in eine beliebige Zelle eingeben.

Um beispielsweise eine Zufallszahl zwischen 1 und 100 zu generieren, geben Sie die Formel =Zufallszahl(1, 100) in eine Zelle ein.

Jetzt generiert Excel bei jeder Neuberechnung eine neue Zufallszahl.

Beschränkung des Bereichs der generierten Zahlen

Wenn Sie eine Zufallszahl mit VBA in Excel generieren, können Sie Einschränkungen für den Bereich möglicher Werte festlegen. Wenn Sie beispielsweise eine Zahl zwischen 1 und 100 generieren möchten, können Sie die Rnd-Funktion in Kombination mit der Int-Funktion verwenden.

Durch die Verwendung der Int-Funktion können Sie den von der Rnd-Funktion zurückgegebenen Wert auf eine ganze Zahl nach unten runden. Um den Bereich zu begrenzen, können Sie das Ergebnis mit der Differenz zwischen der oberen und unteren Grenze multiplizieren und dann zur unteren Grenze hinzufügen. Sie können beispielsweise den folgenden Code verwenden, um eine Zahl zwischen 1 und 100 zu generieren:

Sub GenerateRandomNumber()Dim randomNumber As IntegerrandomNumber = Int((100 - 1 + 1) * Rnd + 1)MsgBox randomNumberEnd Sub

In diesem Beispiel erzeugt die Rnd-Funktion eine Zufallszahl zwischen 0 und 1 (ohne 1 selbst), dann wird diese Zahl mit der Differenz zwischen der oberen und unteren Grenze multipliziert (100 - 1 + 1 ) und dem Ergebnis wird eine untere Grenze (1) hinzugefügt. So ergibt sich eine Zufallszahl im Bereich von 1 bis 100.

Bei Bedarf können Sie die oberen und unteren Grenzen des Bereichs ändern, eine Funktion in eine Schleife einfügen, um mehrere Zufallszahlen zu generieren, oder sie in komplexeren Algorithmen anwenden.