Εάν θέλετε να δημιουργήσετε μια λίστα με μοναδικούς τυχαίους αριθμούς, μπορείτε να χρησιμοποιήσετε συναρτήσεις RANDBETWEEN & VBA RND. Σε αυτό το άρθρο, θα δημιουργήσουμε 3 μοναδικούς αριθμούς από την παρεχόμενη λίστα.
Μπορείτε να βρείτε την αρχική ερώτηση εδώ
Ερώτηση: Θέλω μια μακροεντολή να δημιουργήσει μια λίστα με 3 τυχαίους αριθμούς από μια λίστα αριθμών που έχουν αποθηκευτεί στη στήλη Α. Υπάρχει μια προϋπόθεση ότι πρέπει να ληφθεί μέριμνα για τον κώδικα VBA. Η συνθήκη είναι ότι υπάρχουν 3 αριθμοί που υπάρχουν στη στήλη Β, επομένως η μακροεντολή πρέπει να δημιουργήσει μια λίστα με αριθμούς που δεν έχουν εμφανιστεί μία φορά στη στήλη Β. Με αυτόν τον τρόπο, μπορούμε να έχουμε μια λίστα με μοναδικούς αριθμούς στη στήλη Β & Γ.
Ακολουθεί το στιγμιότυπο του παραδείγματος που έχουμε:
Για να λάβετε τη λίστα με τους μοναδικούς τυχαίους αριθμούς. πρέπει να ακολουθήσουμε τα παρακάτω βήματα για να ξεκινήσουμε τον επεξεργαστή VB
- Κάντε κλικ στην καρτέλα Προγραμματιστής
- Από την ομάδα κώδικα επιλέξτε Visual Basic
- Αντιγράψτε τον παρακάτω κώδικα στην τυπική μονάδα
Sub RandomNumbers () Dim ws As Worksheat Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets ("Numbers") With ws ar = .Range ("A" & Rows.Count ) .Τέλος (xlUp) .Row .Range ("C1: C3"). ClearContents For i = 1 To 3 Do RandomNum = Int ((1 - ar + 1) * Rnd + ar) myVal = .Range ("A" & RandomNum). Value Loop Until Range ("B1: C24"). Find (what: = myVal, lookat: = xlWhole) Is Nothing .Range ("C" & i) .Value = myVal Next i End With End Sub
- Για να εκτελέσετε τη μακροεντολή, μπορούμε να πατήσουμε το πλήκτρο F5 από το πληκτρολόγιο εάν είστε ενεργός στην οθόνη της Visual Basic Editor
- Ένας άλλος τρόπος εκτέλεσης της μακροεντολής είναι η χρήση του πλήκτρου "ALT + F8". επιλέξτε τη μακροεντολή και κάντε κλικ στο κουμπί Εκτέλεση
- Καθώς εκτελούμε τον κωδικό VBA, η μοναδική λίστα αριθμών θα δημιουργηθεί αυτόματα
Επεξήγηση κώδικα:
Στον παραπάνω κώδικα, θα χρησιμοποιήσουμε τη συνάρτηση RND & INT μαζί με το βρόχο For loop & Do για να έχουμε το αποτέλεσμα.
- Δηλώνουμε το Dim ws ως φύλλο εργασίας. ο σκοπός της δήλωσης του ws ως φύλλου εργασίας είναι ότι θέλουμε μόνο ο κώδικας να τρέχει σε ένα συγκεκριμένο φύλλο εργασίας, δηλαδή Αριθμοί στο παράδειγμά μας
- Dim RandomNum As Long: αυτό θα σώσει τους μοναδικούς αριθμούς
- Ορισμός ws = ThisWorkbook.Sheets ("Numbers"): αυτή η γραμμή θα διασφαλίσει ότι ο κώδικας θα τρέχει μόνο στο φύλλο Numbers
- Η επόμενη γραμμή κώδικα θα χρησιμοποιήσει την εντολή With
- ar =. Εύρος ("A" & Rows.Count). Τέλος (xlUp). Σειρά: αυτή η γραμμή θα αποθηκεύσει το τελευταίο κελί στη στήλη Α (24 στο παράδειγμά μας)
- .Range ("C1: C3"). ClearContents: αυτή η γραμμή θα διαγράψει οποιοδήποτε υπάρχον περιεχόμενο στην περιοχή C1: C3
- Στη συνέχεια, θα εκτελέσουμε το βρόχο For ξεκινώντας από 1 έως 3 φορές με το Do Loop για να δημιουργήσουμε μια λίστα με τυχαίους αριθμούς και να ελέγξουμε κανένα διπλότυπο στο υπάρχον εύρος, δηλαδή τη στήλη Β
Συμπέρασμα: Μπορούμε να δημιουργήσουμε μια λίστα με διακριτούς τυχαίους αριθμούς από μια λίστα στο Microsoft Excel με μικρές τροποποιήσεις στον παραπάνω κώδικα VBA.
Αν σας άρεσαν τα ιστολόγια μας, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε, να συμπληρώσουμε ή να καινοτομήσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email