Πίνακας περιεχομένων
Αυτό το άρθρο παρουσιάζει 4 παραδείγματα γεννήτρια τυχαίων αριθμών χωρίς αντίγραφα χρησιμοποιώντας την VBA στο Excel. Εδώ θα χρησιμοποιήσουμε την ενσωματωμένη συνάρτηση Rnd του Excel για να διαμορφώσουμε τον κώδικά μας. Ας βουτήξουμε στα παραδείγματα για να μάθουμε τις τεχνικές για τη δημιουργία μοναδικών τυχαίων αριθμών.
Κατεβάστε το βιβλίο ασκήσεων
Κατεβάστε αυτό το τετράδιο ασκήσεων για να εξασκηθείτε ενώ διαβάζετε αυτό το άρθρο.
Γεννήτρια τυχαίων αριθμών χωρίς αντίγραφα.xlsm4 παραδείγματα γεννήτριας τυχαίων αριθμών χωρίς αντίγραφα στο Excel VBA
Γράψτε κώδικα σε Visual Basic Editor
Προς παράγει τυχαίους αριθμούς χωρίς αντίγραφα , πρέπει να ανοιχτό και γράψτε κώδικα VBA στο visual basic editor. Ακολουθήστε το βήματα στο ανοιχτό το οπτικός βασικός συντάκτης και να γράψετε κάποιο κώδικα εκεί.
- Πηγαίνετε στο Προγραμματιστής από την καρτέλα Κορδέλα Excel .
- Κάντε κλικ στο το Επιλογή Visual Basic.
- Στο Visual Basic για εφαρμογές παράθυρο, κάντε κλικ στο Εισαγωγή dropdown στο επιλέξτε το Νέα ενότητα επιλογή.
Τώρα βάλτε το κωδικός μέσα στο οπτικός επεξεργαστής κώδικα και πατήστε F5 στο τρέχει αυτό.
1. Χρήση της συνάρτησης Rnd της VBA για τη δημιουργία τυχαίου αριθμού χωρίς αντίγραφα
Το Συνάρτηση Rnd χρησιμοποιείται στο Excel VBA στο δημιουργία τυχαίων αριθμών που είναι μεταξύ 0 και 1 αποκλειστικό.
Εργασία : Δημιουργία 10 τυχαίων αριθμών μεταξύ 0 και 1 στο κελιά Α1:Α10.
Κωδικός : Εισαγωγή τα ακόλουθα κωδικός στο οπτικός βασικός συντάκτης και πατήστε F5 στο τρέχει αυτό.
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
Έξοδος : Το παραπάνω στιγμιότυπο οθόνης δείχνει 10 μοναδικοί τυχαίοι αριθμοί στο εύρος 0 και 1.
Επεξήγηση κωδικού:
Σε αυτόν τον κώδικα, χρησιμοποιήσαμε το Συνάρτηση Rnd στο εισαγωγή τυχαίων αριθμών στο εύρος κελιών A1:A10 . εισαγωγή a νέος αριθμός , χρησιμοποιήσαμε ένα Do While Loop στο κοιτάξτε για το αριθμός στο προκαθορισμένη περιοχή κελιών (A1:A10) αν είναι υπάρχει ήδη ή όχι Για να ελέγξετε το ύπαρξη του αριθμός στο εύρος κελιών κάθε φορά, ρυθμίσαμε τον κώδικα με το Λειτουργία COUNTIF , Αυτή η λειτουργία έλεγχοι a νέος τυχαίος αριθμός στο λίστα του ήδη υπάρχοντες αριθμούς πριν από την εισαγωγή του.
Διαβάστε περισσότερα: Τύπος Excel για τη δημιουργία τυχαίου αριθμού (5 παραδείγματα)
2. Γεννήτρια τυχαίων αριθμών για καθορισμένο Lowerbound και Upperbound χωρίς αντίγραφα
Προς δημιουργία τυχαίων αριθμών μέσα σε ένα καθορισμένο εύρος , πρέπει να ορίσουμε το lowerbound και upperbound στον κώδικά μας VBA. Για πληροφορίες, το lowerbound είναι η μικρότερος αριθμός και το upperbound είναι η μεγαλύτερος αριθμός στο εύρος για τη γεννήτρια τυχαίων αριθμών. Μπορούμε να χρησιμοποιήσουμε τα ακόλουθα τύπος στον κώδικά μας.
(upperbound - lowerbound + 1) * Rnd + lowerbound
2.1 Γεννήτρια τυχαίων αριθμών - δεκαδικός αριθμός
Εργασία : Δημιουργία 10 τυχαίων αριθμών μεταξύ 10 και 20 στο κελιά Α1:Α10.
Κωδικός : Εισαγωγή τα ακόλουθα κωδικός στο οπτικός βασικός συντάκτης και πατήστε F5 στο τρέχει αυτό.
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 10 Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Loop Rng.Value =randomNumber Next End Sub
Έξοδος : Το παραπάνω στιγμιότυπο οθόνης δείχνει 10 μοναδικοί τυχαίοι αριθμοί στο εύρος από 1 έως 10.
2.2 Γεννήτρια τυχαίων αριθμών - Ακέραιος αριθμός
Σε αυτή την εικόνα, θα χρησιμοποιήσουμε το Συνάρτηση VBA Int στο αφαιρέστε το το κλασματικό μέρος από το τυχαίοι αριθμοί .
Εργασία : Δημιουργία 20 τυχαίων ακέραιων αριθμών μεταξύ 1 και 20 στο κελιά A1:B10.
Κωδικός : Εισαγωγή τα ακόλουθα κωδικός στο οπτικός βασικός συντάκτης και πατήστε F5 στο τρέχει αυτό.
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) LoopRng.Value = randomNumber Next End Sub
Έξοδος : Το παραπάνω στιγμιότυπο οθόνης δείχνει 20 μοναδικοί τυχαίοι ακέραιοι αριθμοί στο εύρος από 1 έως 20.
Διαβάστε περισσότερα: Γεννήτρια τυχαίων αριθμών στο Excel χωρίς επαναλήψεις (9 μέθοδοι)
Παρόμοιες αναγνώσεις
- Γεννήτρια τυχαίων αριθμών με εργαλείο ανάλυσης δεδομένων και λειτουργίες στο Excel
- Πώς να δημιουργήσετε τυχαία δεδομένα στο Excel (9 εύκολες μέθοδοι)
- Τυχαία γεννήτρια αριθμών 5 ψηφίων στο Excel (7 παραδείγματα)
- Τυχαία γεννήτρια αριθμών 4 ψηφίων στο Excel (8 παραδείγματα)
- Δημιουργία τυχαίου αριθμού από λίστα στο Excel (4 τρόποι)
3. Καθορισμός δεκαδικών θέσεων για μοναδική γεννήτρια τυχαίων αριθμών στο Excel VBA
Μπορούμε να χρησιμοποιήσουμε το Στρογγυλή λειτουργία στον κώδικά μας σε καθορίστε το το αριθμός του δεκαδικές θέσεις στο τυχαία παραγόμενους μοναδικούς αριθμούς . σύνταξη της συνάρτησης είναι-
Round(expression, [numdecimalplaces])
Πρέπει να καθορίστε το το 2ο επιχείρημα σύμφωνα με την απαίτηση .
Εργασία : Δημιουργία 20 τυχαίων αριθμών με 2 δεκαδικά ψηφία μεταξύ 1 και 20 στο κελιά A1:B10.
Κωδικός : Εισαγωγή τα ακόλουθα κωδικός στο οπτικός βασικός συντάκτης και πατήστε F5 στο τρέχει αυτό.
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)Loop Rng.Value = randomNumber Next End Sub
Έξοδος : Το παραπάνω στιγμιότυπο οθόνης δείχνει 20 μοναδικοί τυχαίοι ακέραιοι αριθμοί με 2 δεκαδικά ψηφία στο εύρος από 1 έως 20.
Διαβάστε περισσότερα: Δημιουργία τυχαίου αριθμού στο Excel με δεκαδικά ψηφία (3 μέθοδοι)
4. Ανάπτυξη φόρμας χρήστη για γεννήτρια τυχαίων αριθμών χωρίς αντίγραφα στο Excel VBA
Σε αυτή την εικόνα, θα δείξουμε πώς να χρησιμοποιήσουμε ένα UserForm στο Excel VBA στο δημιουργία τυχαίων αριθμών με δεν υπάρχουν αντίγραφα .
Εργασία: Δημιουργία 20 τυχαίων αριθμών σε εύρος κελιών A1:B10 χρησιμοποιώντας ένα UserForm με το τιμές εισόδου (i) lowerbound (ii) upperbound (iii) αριθμός δεκαδικών ψηφίων.
Δημιουργήστε ένα UserForm:
Ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε ένα UserForm με το δικό μας επιθυμητά πεδία εισαγωγής .
- Πηγαίνετε στο Προγραμματιστής από την καρτέλα Κορδέλα Excel .
- Κάντε κλικ στο το Επιλογή Visual Basic.
- Στο Visual Basic για εφαρμογές παράθυρο, κάντε κλικ στο Εισαγωγή dropdown στο επιλέξτε το UserForm επιλογή.
- Στο Προσθήκη UserForm a ετικέτα .
- Λεζάντα το ετικέτα ως LowerBound στις ιδιότητες.
- Προσθέστε δύο περισσότερα ετικέτες με το όνομα Upperbund και DecimalPlaces .
- Τώρα προσθέστε τρία TextBoxes στο UserForm .
- Σε αυτό το στάδιο, προσθέστε a CommandButton και να το ονομάσετε Δημιουργία .
- Τώρα, διπλό κλικ το CommandButton και βάλτε τα εξής κωδικός στο επεξεργαστής κώδικα .
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
- Τύπος F5 στο τρέχει το κωδικός και το UserForm έχει εμφανίστηκε .
- Βάλτε το lowerbound , upperbound, και το αριθμός του δεκαδικές θέσεις στο UserForm και χτύπησε το Δημιουργία κουμπιού .
Έξοδος : In κελιά A1:B10 , υπάρχουν 20 τυχαίοι αριθμοί με 2 δεκαδικά ψηφία στο εύρος από 1 έως 30.
Διαβάστε περισσότερα: Πώς να δημιουργήσετε τυχαίους αριθμούς χωρίς αντίγραφα στο Excel (7 τρόποι)
Πράγματα που πρέπει να θυμάστε
- Θα μπορούσαμε επίσης να χρησιμοποιήσουμε το Λειτουργία Fix αντί του Λειτουργία Int στο παράγει μοναδικούς ακέραιους αριθμούς Η λειτουργία αφαιρεί το το κλασματικό μέρος ενός αριθμός όπως ακριβώς και το Λειτουργία Int .
Συμπέρασμα
Τώρα, ξέρουμε πώς να δημιουργούμε μοναδικούς τυχαίους αριθμούς χρησιμοποιώντας την VBA στο Excel με τη βοήθεια κατάλληλων παραδειγμάτων. Ελπίζουμε ότι θα σας βοηθήσει να χρησιμοποιήσετε τη λειτουργία με μεγαλύτερη αυτοπεποίθηση. Τυχόν ερωτήσεις ή προτάσεις μην ξεχάσετε να τις βάλετε στο πλαίσιο σχολίων παρακάτω.