VBA Randomize | Cum se folosește declarația Randomize?

Declarație aleatorie în VBA

Instrucțiunea VBA Randomize este o declarație simplă pe care o adăugăm înainte de a aplica funcția RND. Ori de câte ori se deschide un registru de lucru, instrucțiunea Randomize furnizează un nou număr de semnal funcției RND, în funcție de ora sistemului de computer.

Înainte de a vorbi despre declarația Randomize, permiteți-mi să vă prezint o funcție simplă RND cu VBA.

Ca funcție de foaie de lucru „RAND”, și în VBA „RND” va genera numere aleatorii care sunt mai mari de 0 dar mai mici de 1.

Acum aruncați o privire la sintaxa funcției „RND”.

[Număr]: Putem trece argumentul în trei moduri.

  • Dacă trecem numărul ca <0, acesta continuă să genereze același număr aleatoriu de fiecare dată.
  • Dacă trecem numărul ca 0, acesta va repeta cel mai recent număr dat.
  • Dacă trecem numărul> 0, acesta vă oferă în continuare numere aleatorii diferite, adică următorul număr aleatoriu din secvență.

Exemplu

Pentru un exemplu, consultați codul de mai jos.

Cod:

 Sub RND_Example () Debug.Print Rnd End Sub 

Când rulez codul în fereastra imediată, pot vedea numărul de mai jos.

În mod similar, când execut acest cod de încă 3 ori, pot vedea numerele de mai jos.

Acum voi închide registrul de lucru și îl voi redeschide.

Acum mă întorc la fereastra editorului de bază vizual.

Acum fereastra imediată este goală și curată.

Acum, din nou, voi executa codul de patru ori și voi vedea care sunt numerele pe care le vom obține în fereastra imediată.

Am obținut aceleași numere ca și cele de mai sus.

Acesta nu arată ca un număr aleatoriu, deoarece de fiecare dată când redeschidem fișierul, avem tendința de a obține aceleași numere începând de la zero.

Deci, cum generăm numere aleatorii, indiferent dacă registrul de lucru s-a redeschis sau nu?

Trebuie să folosim declarația „Randomize”.

Cum se folosește declarația VBA Randomize?

Puteți descărca acest șablon Excel VBA Randomize aici - Șablon Excel VBA Randomize

Exemplul nr. 1

Pentru a obține numere aleatorii tot ce trebuie să facem este să adăugăm un singur liner „Randomize” înainte de funcția RND.

Cod:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Acum voi rula codul de 4 ori și voi vedea ce primesc.

A generat numerele de mai sus în fereastra mea locală.

Acum voi închide fișierul și îl voi redeschide din nou.

Ca de obicei, începem cu o ardezie curată în fereastra vizuală de bază.

Acum voi executa din nou codul și voi vedea ce numere primim de data aceasta.

Wow!!! Avem numere diferite de data aceasta.

De când am adăugat declarația Randomize înainte de funcția RND obținem numere aleatorii diferite de fiecare dată când redeschidem fișierul.

Arată ca un număr aleatoriu nu-i așa ???

Exemplul nr. 2

Numere aleatorii mai mari decât unul

După cum am văzut, funcția „RND” poate genera numai numere de la 0 la 1. Dar pentru a genera numere mai mari decât un număr aleatoriu, trebuie să folosim „RANDOM BETWEEN”, care este disponibil cu clasa de funcții a foii de lucru.

Deci, pentru a genera numere aleatorii mai mari decât unul, trebuie să folosim codul de mai jos.

Cod:

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

Acum voi executa codul și voi vedea ce primim.

Astfel, putem folosi instrucțiunea „Randomize” din VBA pentru a genera numere aleatorii de fiecare dată când redeschidem fișierul Excel.