Magazine Consigli Utili

Come ottenere il vero random in VBA di Excel con la funzione Rnd e Randomize

Da Squid

Avete realizzato una funzione in VBA di Excel che usa il comando Rnd ma vi rendete conto che il random che crea è finto e che a ogni esecuzione della macro esegue sempre lo stesso schema? Purtroppo la triste realtà è che il random di excel fatto con Rnd non funziona. Ripete sempre gli stessi numeri casuali ad ogni play della macro.


// codice che crea ripetizione
for x = 1 to 100
numero = int((30) * End + 1)
next

Questo codice vi da sempre la stessa sequenza e non vi soddisfa perché volete un vero comportamento casuale "random" dei numeri pescati?

Eccovi la soluzione per fare in VBA il random senza seme (Random without seed):


// codice che crea vero random in VBA
for x = 1 to 100
Randomize
numero = int((30) * End + 1)
next

Basta scrivere "Randomize" (funzione interna di VBA) per creare un vero random ad ogni ciclo di esecuzione. Se quindi vi sembra che il Rnd non funzioni, eccovi la soluzione al problema, che vi permetterà di avere una casualità reale che non si ripete ad ogni avvio di programma.

Strano che tale Randomize debba essere dichiarata a mano e non sia VBA di Excel stesso a proporla integrata nella funzione Rnd.

Fonte originale: Informazione e news.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :

Dossier Paperblog

Magazine