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

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

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

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

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

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

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

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

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Random Numbers Excel - Πρότυπο VBA Random Numbers Excel

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

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

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

Κώδικας:

 Sub Rnd_Example1 () Dim K As Integer End Sub 

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

Κώδικας:

 Υπο 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 - Λάβετε τον ίδιο τυχαίο αριθμό κάθε φορά

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

Κώδικας:

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

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

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

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

Κώδικας:

 Υπο 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.


$config[zx-auto] not found$config[zx-overlay] not found