Inhaltsverzeichnis
Dieser Artikel veranschaulicht 4 Beispiele für Zufallszahlengenerator ohne Duplikate mit VBA in Excel. Hier verwenden wir die in Excel eingebaute Funktion Rnd, um unseren Code zu konfigurieren. Tauchen wir in die Beispiele ein, um die Techniken zur Erzeugung eindeutiger Zufallszahlen zu lernen.
Download Arbeitsbuch Praxis
Laden Sie dieses Übungsheft herunter, um zu üben, während Sie diesen Artikel lesen.
Zufallszahlengenerator ohne Duplikate.xlsm4 Beispiele für Zufallszahlengenerator ohne Duplikate in Excel VBA
Code im Visual Basic-Editor schreiben
An Zufallszahlen ohne Duplikate erzeugen müssen wir öffnen und VBA-Code schreiben im Visual Basic-Editor. Folgen Sie der Schritte zu öffnen die Visual Basic-Editor und schreiben Sie dort etwas Code.
- Gehen Sie zum Entwickler von der Registerkarte Excel-Farbband .
- Klicken Sie auf die Visual Basic-Option.
- In der Visual Basic für Anwendungen Fenster, klicken Sie auf die Schaltfläche Dropdown einfügen zu Wählen Sie die Neues Modul Option.
Setzen Sie nun Ihre Code innerhalb der visueller Code-Editor und F5 drücken zu laufen. es.
1. Verwendung der VBA-Funktion Rnd zur Erzeugung einer Zufallszahl ohne Duplikate
Die Rnd-Funktion wird verwendet in Excel-VBA zu Zufallszahlen generieren die sind zwischen 0 und 1 exklusiv.
Aufgabe : Generieren Sie 10 Zufallszahlen zwischen 0 und 1 in Zellen A1:A10.
Code : einfügen. die folgenden Code im Visual Basic-Editor und drücken Sie F5 zu laufen. es.
Public Sub GenerateRandomNumNoDuplicates() Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = Rnd Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Rnd Loop Rng.Value = randomNumber Next End Sub
Ausgabe Der obige Bildschirmausdruck zeigt 10 einzigartige Zufallszahlen im Bereich von 0 und 1.
Code-Erläuterung:
In diesem Code haben wir die Rnd-Funktion zu Zufallszahlen einfügen im Zellbereich A1:A10 . vorher Einfügen a neue Nummer haben wir eine Do-While-Schleife zu siehe für die Nummer im vordefinierter Zellbereich (A1:A10) ob es existiert bereits oder nicht Zur Überprüfung der Existenz der Nummer im Zellbereich haben wir den Code jedes Mal mit der Option COUNTIF-Funktion Diese Funktion prüft a neue Zufallszahl im Liste von bereits vorhandene Zahlen vor dem Einfügen.
Lesen Sie mehr: Excel-Formel zur Erzeugung von Zufallszahlen (5 Beispiele)
2. Zufallszahlengenerator für definierte Untergrenze und Obergrenze ohne Duplikate
An Zufallszahlen generieren innerhalb einer definierter Bereich müssen wir die Untergrenze und Obergrenze in unserem VBA-Code. Zur Information: Die Untergrenze ist die niedrigste Anzahl und die Obergrenze ist die höchste Anzahl im Bereich für den Zufallszahlengenerator. Wir können Folgendes verwenden Formel in unserem Code.
(Obergrenze - Untergrenze + 1) * Rnd + Untergrenze
2.1 Zufallszahlengenerator - Dezimal
Aufgabe : Generieren Sie 10 Zufallszahlen zwischen 10 und 20 in Zellen A1:A10.
Code : einfügen. die folgenden Code im Visual Basic-Editor und drücken Sie F5 zu laufen. es.
Public Sub GenerateRandomNumNoDuplicates() untere Grenze = 1 obere Grenze = 10 Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = (obere Grenze - untere Grenze + 1) * Rnd + lowerbound Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = (obere Grenze - untere Grenze + 1) * Rnd + lowerbound Loop Rng.Value =randomNumber Next End Sub
Ausgabe Der obige Bildschirmausdruck zeigt 10 einzigartige Zufallszahlen im Bereich von 1 und 10.
2.2 Zufallszahlengenerator - Ganzzahlig
In dieser Illustration verwenden wir die VBA Int-Funktion zu entfernen die Nachkommastelle von der Zufallszahlen .
Aufgabe : Erzeugen von 20 zufälligen ganzzahligen Zahlen zwischen 1 und 20 in Zellen A1:B10.
Code : einfügen. die folgenden Code im Visual Basic-Editor und drücken Sie F5 zu laufen. es.
Public Sub GenerateRandomNumNoDuplicates() untere Grenze = 1 obere Grenze = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((obere Grenze - untere Grenze + 1) * Rnd + untere Grenze) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Int((obere Grenze - untere Grenze + 1) * Rnd + untere Grenze) LoopRng.Value = randomNumber Next End Sub
Ausgabe Der obige Bildschirmausdruck zeigt 20 einzigartige zufällige Ganzzahlenzahlen im Bereich von 1 und 20.
Lesen Sie mehr: Zufallszahlengenerator in Excel ohne Wiederholungen (9 Methoden)
Ähnliche Lektüre
- Zufallszahlengenerator mit Datenanalysetool und Funktionen in Excel
- Wie man in Excel Zufallsdaten erzeugt (9 einfache Methoden)
- Zufallsgenerator für 5-stellige Zahlen in Excel (7 Beispiele)
- Zufallsgenerator für 4-stellige Zahlen in Excel (8 Beispiele)
- Erzeugen einer Zufallszahl aus einer Liste in Excel (4 Möglichkeiten)
3. Dezimalstellen für eindeutigen Zufallszahlengenerator in Excel VBA spezifizieren
Wir können die Runde Funktion in unserem Code zu angeben. die Nummer von Dezimalstellen im zufällig generierte eindeutige Nummern . die Syntax der Funktion ist -
Round(Ausdruck, [Zahl der Dezimalstellen])
Wir müssen angeben. die 2. Argument gemäß unserer Anforderung .
Aufgabe : Erzeugen von 20 Zufallszahlen mit 2 Dezimalstellen zwischen 1 und 20 in Zellen A1:B10.
Code : einfügen. die folgenden Code im Visual Basic-Editor und drücken Sie F5 zu laufen. es.
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2)Schleife Rng.Value = randomNumber Next End Sub
Ausgabe Der obige Bildschirmausdruck zeigt 20 zufällige ganze Zahlen mit 2 Dezimalstellen im Bereich von 1 und 20.
Lesen Sie mehr: Generieren von Zufallszahlen in Excel mit Dezimalzahlen (3 Methoden)
4. Entwicklung eines Benutzerformulars für einen Zufallszahlengenerator ohne Duplikate in Excel VBA
In dieser Illustration zeigen wir, wie man eine UserForm in Excel-VBA zu Zufallszahlen generieren mit keine Duplikate .
Aufgabe: Generieren Sie 20 Zufallszahlen im Zellbereich A1:B10 unter Verwendung einer UserForm mit dem Eingabewerte (i) Untergrenze (ii) Obergrenze (iii) Anzahl der Dezimalstellen.
Erstellen Sie ein UserForm:
Führen Sie die folgenden Schritte aus, um eine UserForm mit unserem gewünschte Eingabefelder .
- Gehen Sie zum Entwickler von der Registerkarte Excel-Farbband .
- Klicken Sie auf die Visual Basic-Option.
- In der Visual Basic für Anwendungen Fenster, klicken Sie auf die Schaltfläche Dropdown einfügen zu Wählen Sie die UserForm Option.
- In der UserForm hinzufügen a Etikett .
- Beschriftung der Etikett als LowerBound in den Eigenschaften.
- hinzufügen zwei mehr Etiketten namens Upperbund und DecimalPlaces .
- Jetzt hinzufügen drei TextBoxen im UserForm .
- In diesem Stadium, hinzufügen. a CommandButton und nennen Sie es Erzeugen Sie .
- Jetzt, Doppelklick die CommandButton und setzen Sie Folgendes ein Code im Code-Editor .
Private Sub CommandButton1_Click() Dim lowerbound As Integer Dim upperbound As Integer Dim decimalPlaces As Integer lowerbound = Val(TextBox1.Text) upperbound = Val(TextBox2.Text) decimalPlaces = Val(TextBox3.Text) Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Do WhileApplication.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Loop Rng.Value = randomNumber Next End Sub
- Presse F5 zu laufen. die Code und die UserForm hat erschienen .
- Legen Sie die Untergrenze , nach oben gebunden, und die Nummer von Dezimalstellen im UserForm und drücken Sie die Schaltfläche "Erzeugen .
Ausgabe : In Zellen A1:B10 gibt es 20 Zufallszahlen mit 2 Dezimalstellen im Bereich von 1 bis 30.
Lesen Sie mehr: Wie man Zufallszahlen ohne Duplikate in Excel generiert (7 Wege)
Dinge zum Merken
- Wir könnten auch die Funktion fixieren anstelle der Int-Funktion zu eindeutige ganzzahlige Zahlen erzeugen Die Funktion beseitigt die Nachkommastelle eines Nummer genau wie die Int-Funktion .
Schlussfolgerung
Jetzt wissen wir, wie man mit Hilfe von VBA in Excel eindeutige Zufallszahlen generiert. Hoffentlich hilft es Ihnen, die Funktionalität sicherer zu nutzen. Wenn Sie Fragen oder Anregungen haben, vergessen Sie nicht, sie in das Kommentarfeld unten zu schreiben.