Generați 3 numere aleatoare unice în Microsoft Excel

Anonim

Dacă doriți să generați o listă de numere aleatorii unice, puteți utiliza funcțiile RANDBETWEEN și VBA RND. În acest articol, vom genera 3 numere unice din lista furnizată.

Puteți găsi întrebarea originală aici

Întrebare: Vreau ca o macrocomandă să genereze o listă de 3 numere aleatorii dintr-o listă de numere salvate în coloana A. Există o condiție de care codul VBA trebuie să fie îngrijit. Condiția este că există 3 numere care există în coloana B, prin urmare macro trebuie să creeze o listă de numere care nu au apărut o dată în coloana B. În acest fel, putem avea o listă de numere unice în coloana B și C.

Urmează instantaneul exemplului pe care îl avem:

Pentru a obține lista numerelor aleatoare unice; trebuie să urmăm pașii de mai jos pentru a lansa editorul VB

  • Faceți clic pe fila Dezvoltator
  • Din grupul de coduri, selectați Visual Basic

  • Copiați codul de mai jos în modulul standard
Sub RandomNumbers () Dim ws Ca foaie de lucru 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"). Găsiți (ce: = myVal, lookat: = xlWhole) is Nothing .Range ("C" & i) .Value = myVal Next i End With End Sub 

  • Pentru a rula macro-ul, putem apăsa tasta F5 de la tastatură dacă sunteți activ în ecranul Editorului Visual Basic
  • O altă modalitate de a rula macro utilizează tasta „ALT + F8”; selectați macrocomanda și faceți clic pe butonul Executare

  • Pe măsură ce rulăm codul VBA, lista unică de numere va fi generată automat

Explicatie cod:

În codul de mai sus, vom folosi funcția RND & INT împreună cu For loop & Do loop pentru a obține rezultatul.

  • Declarăm Dim ws ca Foaie de lucru; scopul de a declara ws ca Foaie de lucru este că dorim doar ca codul să ruleze pe o foaie de lucru specifică, adică Numere în exemplul nostru
  • Dim RandomNum As Long: aceasta va salva numerele unice
  • Set ws = ThisWorkbook.Sheets ("Numere"): această linie va asigura că codul rulează numai pe foaia Numere
  • Următoarea linie de cod va folosi instrucțiunea With
  • ar = .Range ("A" & Rows.Count) .End (xlUp) .Row: această linie va salva ultima celulă din coloana A (24 în exemplul nostru)
  • .Range („C1: C3”). ClearContents: această linie va șterge orice conținut existent în intervalul C1: C3
  • Apoi, vom executa bucla For începând de la 1 la 3 ori cu Do Buclă pentru a genera lista de numere aleatorii și nu verificăm duplicate în intervalul existent, adică coloana B

Concluzie: Putem genera o listă de numere aleatorii distincte dintr-o listă din Microsoft Excel, cu mici modificări în codul VBA de mai sus.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail