Come generare numeri casuali in vba?

In VBA, puoi utilizzare diversi modi per generare un numero casuale in Excel e in questo articolo li esamineremo tutti uno per uno.

Funzione RND

Per generare un numero casuale, in VBA, esiste una funzione chiamata RND . Questa funzione significa casuale e quando la usi nel codice restituisce un numero casuale compreso tra 0 e 1. In RND non è necessario specificare alcun argomento.

 Range("A1") = Rnd()

Il codice sopra lo utilizza per ottenere un numero casuale in A1 e restituisce 0,705547521.

generare un numero casuale in vba

Ma quando lo usi per un intero intervallo, restituisce lo stesso numero casuale nell’intero intervallo e ciò lo rende nullo da utilizzare per generare numeri casuali più di una volta.

restituisce lo stesso numero casuale

Ora, qui non ha senso usarlo, vero? Ma esiste una soluzione che puoi utilizzare, FOR NEXT LOOP .

utilizzare per il ciclo successivo

Nel codice sopra hai un ciclo che attraversa 10 celle (una per una) a partire dalla cella selezionata e aggiunge un numero casuale.

Ecco il codice completo:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Numero casuale tra due numeri

Se vuoi generare un numero casuale tra due numeri definiti, in questo caso devi scrivere il codice utilizzando due funzioni VBA ( RND + INT ). Il codice per questa formula sarebbe come di seguito.

numero-casuale-tra-due-numeri
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Quando esegui questa macro , RND utilizza il numero massimo e il numero minimo impostati per generare il numero casuale e INT rimuove la cifra decimale.

rnd-usa-il-numero-max-e-min

Utilizzo delle funzioni del foglio di lavoro nel codice VBA per generare un numero casuale

In VBA è possibile accedere alle funzioni del foglio di lavoro e utilizzarle per ottenere un risultato specificando gli argomenti. Due funzioni del foglio di calcolo possono aiutarti a ottenere un numero casuale nel risultato.

  • RandTra
  • RandTableau

Prima di utilizzare queste funzioni, assicurati di comprendere gli argomenti che devi impostare. Ora nel codice seguente hai RANDBETWEEN che genera un numero casuale tra due numeri.

usa-randbetween-genera-un-numero-casuale-tra-due-numeri
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Qui il numero massimo è 2000 e il numero minimo è 1000. Allo stesso modo, puoi utilizzare RANDARRAY che è una funzione di array dinamico.

Ecco il codice.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
usa-randarray-che-è-una-funzione-array-dinamica

Se guardi la sintassi di RANDARRAY, scoprirai che puoi inserire numeri casuali in un intervallo intero, cosa che non è possibile con tutti i metodi discussi sopra.

sintassi randarray

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *