Δημιουργήστε τυχαίους αριθμούς χρησιμοποιώντας τη συνάρτηση VBA RND

Πίνακας περιεχομένων

Τυχαίοι αριθμοί Excel VBA

Για τη δημιουργία τυχαίων αριθμών στο vba έχουμε μια ενσωματωμένη συνάρτηση που ονομάζεται RND . Χρειάζεται απλώς ένα όρισμα ένας αριθμός για τη δημιουργία τυχαίων αριθμών και αυτή είναι επίσης μια προαιρετική παράμετρος. Θα δημιουργήσει τυχαίους αριθμούς που είναι μεγαλύτεροι από 0 και μικρότεροι από 1.

Αυτό λειτουργεί ακριβώς το ίδιο με τη λειτουργία excel "RAND." Όπως είπα και στη συνάρτηση φύλλου εργασίας "RAND" στο VBA, μπορούμε να δημιουργήσουμε τυχαίους αριθμούς που είναι μεγαλύτεροι από 0 αλλά λιγότεροι από 1.

Τώρα ρίξτε μια ματιά στη σύνταξη της συνάρτησης "RND".

(Αριθμός): Μπορούμε να περάσουμε το επιχείρημα με τρεις τρόπους.

  • Εάν περάσουμε τον αριθμό ως <0, συνεχίζει να δημιουργεί τον ίδιο τυχαίο αριθμό κάθε φορά.
  • Εάν περάσουμε τον αριθμό ως 0, θα επαναλάβει τον πιο πρόσφατο αριθμό που έχει δώσει.
  • Εάν περάσουμε τον αριθμό> 0, σας δίνει διαφορετικούς τυχαίους αριθμούς, δηλαδή τον επόμενο τυχαίο αριθμό στην ακολουθία.

Πώς να δημιουργήσετε τυχαίους αριθμούς χρησιμοποιώντας τον κώδικα VBA;

Παράδειγμα # 1

Τώρα θα δούμε το απλό παράδειγμα της λειτουργίας "RND". Ακολουθήστε τα παρακάτω βήματα για να γράψετε τον κώδικα VBA μόνοι σας.

Βήμα 1: Δηλώστε τη μεταβλητή ως "Integer" στο VBA.

Κώδικας:

Sub Rnd_Example1 () Dim K As Integer End Sub

Βήμα 2: Εκχωρήστε τώρα την τιμή στη μεταβλητή "k" μέσω της συνάρτησης " RND ".

Κώδικας:

Sub Rnd_Example1 () Dim K As Integer K = Rnd () End Sub

Βήμα 3: Εμφάνιση της τιμής που επιστρέφεται από τη μεταβλητή "k" στο πλαίσιο μηνύματος .

Κώδικας:

Υπο Rnd_Example1 () Dim K As Integer K = Rnd () MsgBox K End Sub

Τώρα εκτελέστε τη μακροεντολή excel και δείτε τι είναι το αποτέλεσμα.

Κοίτα τι έχει συμβεί.

Δείχνει το αποτέλεσμα ως 1 όπου η συνάρτηση "RND" μπορεί να επιστρέψει μόνο αριθμούς που είναι μεγαλύτεροι από μηδέν αλλά μικρότεροι από 1.

Πρέπει να σκέφτεστε τι είναι το λάθος εδώ.

Το λάθος εδώ είναι το είδος του τύπου δεδομένων που έχουμε εκχωρήσει στη μεταβλητή "k".

Εάν κοιτάξετε πίσω τη μεταβλητή που έχουμε δηλώσει, έχουμε αντιστοιχίσει τον τύπο δεδομένων ως ακέραιο. Δεδομένου ότι έχουμε εκχωρήσει τη μεταβλητή ως ακέραιο, μπορεί να εμφανίσει μόνο τους ακέραιους αριθμούς μεταξύ -32768 και 32767.

Κάθε φορά που το RND επιστρέφει τον δεκαδικό αριθμό, το VBA μετατρέπει τον δεκαδικό αριθμό στον πλησιέστερο ακέραιο, δηλαδή 1.

Έτσι, για να λειτουργήσει σωστά ο τύπος, δηλώστε τη μεταβλητή ως " Διπλό ".

Το "Double" είναι ο τύπος δεδομένων στο VBA που μπορεί να διατηρήσει δεκαδικές τιμές.

Κώδικας:

Sub Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub

Τώρα ο κωδικός και δείτε τι είναι το αποτέλεσμα.

Κάντε κλικ στο ok και εκτελέστε μια ακόμη φορά και δείτε τι είναι το αποτέλεσμα.

Αυτή τη φορά έχουμε ένα διαφορετικό αποτέλεσμα. Δεδομένου ότι το "RND" είναι μια πτητική λειτουργία στη φύση, αναπαράγει διαφορετικά αποτελέσματα κάθε φορά που εκτελείτε τον κώδικα.

Παράδειγμα # 2 - Λάβετε τον ίδιο τυχαίο αριθμό κάθε φορά

Όπως έχουμε δει στο προηγούμενο παράδειγμα e, η συνάρτηση "RND" αναπαράγει το αποτέλεσμα κάθε φορά που εκτελούμε τον κώδικα. Για να λάβουμε τον ίδιο τυχαίο αριθμό, ξανά και ξανά, πρέπει να περάσουμε το όρισμα ως μηδέν.

Κώδικας:

Υπο Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub

Αυτό θα παράγει τον ίδιο αριθμό ξανά και ξανά όταν εκτελούμε τον κώδικα.

Παράδειγμα # 3 - Δημιουργία ολόκληρου τυχαίου αριθμού

Μπορούμε επίσης να δημιουργήσουμε ολόκληρους αριθμούς χρησιμοποιώντας άλλες συναρτήσεις VBA ή άλλους αριθμούς εισόδου. Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Κώδικας:

Sub Rnd_Example3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub

Αυτός ο κώδικας θα παράγει τυχαίους ακέραιους αριθμούς με δεκαδικά ψηφία κάθε φορά που εκτελούμε τον κώδικα.

Εάν κοιτάζετε ολόκληρους τους αριθμούς χωρίς δεκαδικά ψηφία, τότε μπορούμε να χρησιμοποιήσουμε τον παρακάτω κωδικό.

Κώδικας:

Υπο Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub

Αυτό θα συνεχίσει να δημιουργεί ολόκληρους τους αριθμούς από 1 έως 100.

ενδιαφέροντα άρθρα...