VBA Randomize

Instrukcja Randomize w VBA

Instrukcja VBA Randomize to prosta jednowierszowa instrukcja, którą dodajemy przed zastosowaniem funkcji RND. Za każdym razem, gdy skoroszyt jest ponownie otwierany, instrukcja Randomize zapewnia nowy numer początkowy funkcji RND w zależności od czasu systemowego komputera.

Zanim opowiem o instrukcji Randomize, pozwólcie, że przedstawię wam prostą funkcję RND z VBA.

Jako funkcja arkusza „RAND”, w języku VBA „RND” również generuje liczby losowe, które są większe niż 0, ale mniejsze niż 1.

Teraz spójrz na składnię funkcji „RND”.

[Liczba]: Możemy przekazać argument na trzy sposoby.

  • Jeśli przekażemy liczbę jako <0, za każdym razem generuje tę samą liczbę losową.
  • Jeśli przekażemy liczbę jako 0, powtórzy ona ostatnią podaną liczbę.
  • Jeśli przekażemy liczbę> 0, to daje ci różne liczby losowe, tj. Następną liczbę losową w sekwencji.

Przykład

Na przykład spójrz na poniższy kod.

Kod:

 Sub RND_Example () Debug.Print Rnd End Sub 

Po uruchomieniu kodu w najbliższym oknie widzę poniższy numer.

Podobnie, gdy wykonuję ten kod jeszcze 3 razy, widzę poniższe liczby.

Teraz zamknę skoroszyt i ponownie go otworzę.

Teraz wrócę do okna edytora Visual Basic.

Teraz bezpośrednie okno jest puste i czyste.

Teraz ponownie wykonam kod cztery razy i zobaczę, jakie liczby otrzymamy w najbliższym oknie.

Otrzymaliśmy te same liczby, co powyżej.

Nie wygląda to na przypadkową liczbę, ponieważ za każdym razem, gdy ponownie otwieramy plik, zwykle otrzymujemy te same liczby, zaczynając od zera.

Jak więc wygenerować liczby losowe, niezależnie od tego, czy skoroszyt został ponownie otwarty, czy nie?

Musimy użyć instrukcji „Randomize”.

Jak korzystać z instrukcji VBA Randomize?

Możesz pobrać ten szablon VBA Randomize Excel tutaj - VBA Randomize Excel Template

Przykład 1

Aby uzyskać liczby losowe, wszystko, co musimy zrobić, to dodać prosty jednowierszowy „Randomize” przed funkcją RND.

Kod:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Teraz uruchomię kod 4 razy i zobaczę, co otrzymam.

Wygenerował powyższe liczby w moim oknie lokalnym.

Teraz zamknę plik i ponownie go otworzę.

Jak zwykle zaczynamy od czystej karty w oknie Visual Basic.

Teraz ponownie wykonam kod i zobaczę, jakie liczby otrzymamy tym razem.

Łał!!! Tym razem mamy różne liczby.

Ponieważ dodaliśmy instrukcję Randomize przed funkcją RND, otrzymujemy różne liczby losowe za każdym razem, gdy ponownie otwieramy plik.

To wygląda na losową liczbę, prawda ???

Przykład nr 2

Losowe liczby większe niż jeden

Jak widzieliśmy, funkcja „RND” może generować tylko liczby od 0 do 1. Aby jednak wygenerować liczby większe niż jedna liczba losowa, musimy użyć funkcji „RANDOM BETWEEN”, która jest dostępna w klasie funkcji arkusza.

Tak więc, aby wygenerować liczby losowe większe niż jeden, musimy użyć poniższego kodu.

Kod:

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

Teraz wykonam kod i zobaczę, co otrzymamy.

W ten sposób możemy użyć instrukcji „Randomize” w języku VBA do generowania liczb losowych za każdym razem, gdy ponownie otwieramy plik Excela.