VBA Randomize

Istruzione Randomize in VBA

L' istruzione VBA Randomize è una semplice istruzione di una riga che aggiungiamo prima di applicare la funzione RND. Ogni volta che una cartella di lavoro viene riaperta, l'istruzione Randomize fornisce un nuovo numero di inizializzazione alla funzione RND a seconda dell'ora di sistema del computer.

Prima di parlare dell'istruzione Randomize, lascia che ti presenti una semplice funzione RND con VBA.

Come funzione del foglio di lavoro "RAND", anche in VBA "RND" genererà numeri casuali maggiori di 0 ma inferiori a 1.

Ora dai un'occhiata alla sintassi della funzione "RND".

[Numero]: Possiamo passare l'argomento in tre modi.

  • Se passiamo il numero come <0, continua a generare lo stesso numero casuale ogni volta.
  • Se passiamo il numero come 0, ripeterà il numero più recente che ha fornito.
  • Se passiamo il numero> 0, continua a darti numeri casuali diversi, cioè il numero casuale successivo nella sequenza.

Esempio

Per un esempio, guarda il codice seguente.

Codice:

 Sub RND_Example () Debug.Print Rnd End Sub 

Quando eseguo il codice nella finestra immediata vedo il numero sotto.

Allo stesso modo, quando eseguo questo codice per altre 3 volte posso vedere i numeri seguenti.

Ora chiuderò la cartella di lavoro e la riaprirò.

Ora tornerò alla finestra dell'editor di visual basic.

Ora la finestra immediata è vuota e pulita.

Ora di nuovo eseguirò il codice quattro volte e vedrò quali sono i numeri che otterremo nella finestra immediata.

Abbiamo gli stessi numeri che abbiamo sopra.

Questo non sembra un numero casuale perché ogni volta che riapriamo il file tendiamo a ottenere gli stessi numeri partendo da zero.

Quindi, come generiamo numeri casuali indipendentemente dal fatto che la cartella di lavoro sia stata riaperta o meno?

Dobbiamo usare l'istruzione "Randomize".

Come utilizzare l'istruzione Randomize VBA?

Puoi scaricare questo modello VBA Randomize Excel qui - VBA Randomize Excel Template

Esempio 1

Per ottenere numeri casuali tutto ciò che dobbiamo fare è aggiungere la semplice riga di una riga "Randomize" prima della funzione RND.

Codice:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Ora eseguirò il codice 4 volte e vedrò cosa ottengo.

Ha generato i numeri di cui sopra nella mia finestra locale.

Ora chiuderò il file e riaprirò il file ancora una volta.

Come al solito, iniziamo con una lavagna pulita nella finestra di visual basic.

Ora eseguirò di nuovo il codice e vedrò quali numeri otteniamo questa volta.

Wow!!! Questa volta abbiamo numeri diversi.

Poiché abbiamo aggiunto l'istruzione Randomize prima della funzione RND, otteniamo numeri casuali diversi ogni volta che riapriamo il file.

Sembra un numero casuale non è vero ???

Esempio n. 2

Numeri casuali maggiori di uno

Come abbiamo visto la funzione "RND" può generare solo numeri da 0 a 1. Ma per generare numeri maggiori di un numero casuale dobbiamo usare "RANDOM BETWEEN", disponibile con la classe di funzioni del foglio di lavoro.

Quindi, per generare numeri casuali maggiori di uno dobbiamo usare il codice seguente.

Codice:

 Sub Randomize_2 () Randomize Debug.Print Rnd * 100 End Sub 

Ora eseguirò il codice e vedrò cosa otteniamo.

In questo modo, possiamo utilizzare l'istruzione "Randomize" in VBA per generare numeri casuali ogni volta che riapriamo il file excel.