Genera 3 numeri casuali univoci in Microsoft Excel

Anonim

Se desideri generare un elenco di numeri casuali univoci, puoi utilizzare le funzioni RANDBETWEEN e VBA RND. In questo articolo, genereremo 3 numeri univoci dall'elenco fornito.

Puoi trovare la domanda originale qui

Domanda: Voglio che una macro generi un elenco di 3 numeri casuali da un elenco di numeri salvati nella colonna A. Esiste una condizione per cui è necessario occuparsi del codice VBA. La condizione è che ci siano 3 numeri che esistono nella colonna B, quindi la macro deve creare un elenco di numeri che non si sono verificati una volta nella colonna B. In questo modo, possiamo avere un elenco di numeri univoci nella colonna B e C.

Di seguito è riportato lo snapshot di esempio che abbiamo:

Per ottenere l'elenco dei numeri casuali univoci; dobbiamo seguire i passaggi seguenti per avviare l'editor VB

  • Fare clic sulla scheda Sviluppatore
  • Dal gruppo Codice seleziona Visual Basic

  • Copia il codice sottostante nel modulo standard
Sub RandomNumbers() Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets("Numbers") With ws ar = .Range("A" & Rows.Count ).End(xlUp).Row .Range("C1:C3").ClearContents For i = 1 To 3 Do RandomNum = Int((1 - ar + 1) * Rnd + ar) myVal = .Range("A" & RandomNum).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub 

  • Per eseguire la macro, possiamo premere il tasto F5 dalla tastiera se sei attivo nella schermata di Visual Basic Editor
  • Un altro modo per eseguire la macro è usare il tasto "ALT + F8"; seleziona la macro e fai clic sul pulsante Esegui

  • Quando eseguiamo il codice VBA, l'elenco univoco di numeri verrà generato automaticamente

Spiegazione del codice:

Nel codice sopra, useremo la funzione RND & INT insieme a For loop & Do loop per ottenere il risultato.

  • Dichiariamo Dim ws come foglio di lavoro; lo scopo di dichiarare ws come foglio di lavoro è che vogliamo solo che il codice venga eseguito su un foglio di lavoro specifico, ad esempio i numeri nel nostro esempio
  • Dim RandomNum As Long: questo salverà i numeri univoci
  • Set ws = ThisWorkbook.Sheets("Numbers"): questa riga assicurerà che il codice venga eseguito solo sul foglio Numbers
  • La prossima riga di codice utilizzerà l'istruzione With
  • ar = .Range("A" & Rows.Count).End(xlUp).Row: questa riga salverà l'ultima cella nella colonna A (24 nel nostro esempio)
  • .Range("C1:C3").ClearContents: questa riga cancellerà qualsiasi contenuto esistente nell'intervallo C1:C3
  • Successivamente, eseguiremo il ciclo For a partire da 1 a 3 volte con Do Loop per generare un elenco di numeri casuali e controllare l'assenza di duplicati nell'intervallo esistente, ad esempio la colonna B

Conclusione: Possiamo generare un elenco di numeri casuali distinti da un elenco in Microsoft Excel con piccole modifiche nel codice VBA sopra.

Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook.

Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica