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?

Пример # 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.

Интересни статии...