VBA Randomize | Как да използвам Randomize Statement?

Израз на рандомизиране във VBA

Операторът VBA Randomize е прост еднолинеен израз, който добавяме, преди да приложим функцията RND. При всяко отваряне на работна книга операторът Randomize предоставя нов начален номер на функцията RND в зависимост от системното време на компютъра.

Преди да говоря за изявлението Randomize, позволете ми да ви запозная с проста RND функция с VBA.

Като функция на работен лист „RAND“, в VBA „RND“ също ще генерира произволни числа, които са по-големи от 0, но по-малко от 1.

Сега разгледайте синтаксиса на функцията „RND“.

[Число]: Можем да предадем аргумента по три начина.

  • Ако предадем числото като <0, той продължава да генерира едно и също произволно число всеки път.
  • Ако предадем числото като 0, то ще повтори най-новото число, което е дал.
  • Ако предадем числото> 0, той продължава да ви дава различни случайни числа, т.е. следващото произволно число в последователността.

Пример

За пример вижте кода по-долу.

Код:

 Sub RND_Example () Debug.Print Rnd End Sub 

Когато стартирам кода в непосредствения прозорец, виждам номера под него.

По същия начин, когато изпълнявам този код още 3 пъти, мога да видя по-долу числата.

Сега ще затворя работната книга и ще я отворя отново.

Сега ще се върна към прозореца на редактора на visual basic.

Сега непосредственият прозорец е празен и чист.

Сега отново ще изпълня кода четири пъти и ще видя кои са числата, които ще получим в непосредствения прозорец.

Получихме същите числа като горе.

Това не изглежда като случайно число, защото всеки път, когато отваряме отново файла, обикновено получаваме едни и същи числа, започвайки от нулата.

И така, как да генерираме случайни числа, независимо дали работната книга е отворена отново или не?

Трябва да използваме изявлението „Randomize“.

Как да използвам VBA Randomize Statement?

Можете да изтеглите този VBA Randomize Excel Template от тук - VBA Randomize Excel Template

Пример # 1

За да получим произволни числа, всичко, което трябва да направим, е да добавим обикновената еднолинейна “Randomize” преди функцията RND.

Код:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Сега ще пусна кода 4 пъти и ще видя какво ще получа.

Той генерира горните числа в моя локален прозорец.

Сега ще затворя файла и ще го отворя отново.

Както обикновено, започваме с чист лист в прозореца на visual basic.

Сега отново ще изпълня кода и ще видя какви числа ще получим този път.

Еха!!! Този път получихме различни числа.

Тъй като добавихме оператора Randomize преди функцията RND, получаваме различни произволни числа всеки път, когато отваряме отново файла.

Това изглежда като случайно число, нали ???

Пример # 2

Случайни числа, по-големи от едно

Както видяхме, функцията „RND“ може да генерира числа само от 0 до 1. Но за да генерираме числа, по-големи от едно произволно число, трябва да използваме „СЛУЧАЙНО МЕЖДУ”, което се предлага с клас на функция на работния лист.

Така че, за да генерираме случайни числа, по-големи от едно, трябва да използваме кода по-долу.

Код:

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

Сега ще изпълня кода и ще видя какво ще получим.

По този начин можем да използваме оператора „Randomize“ във VBA, за да генерираме произволни числа всеки път, когато отваряме отново файла на Excel.