VBA Randomize | Як використовувати оператор Randomize?

Випадок рандомізації у VBA

Оператор VBA Randomize - це простий однорядковий вираз, який ми додаємо перед застосуванням функції RND. Щоразу, коли книгу відкривається повторно, оператор Randomize надає новий номер насіння функції RND залежно від системного часу комп'ютера.

Перш ніж я розповім про оператор Randomize, дозвольте мені познайомити вас з простою функцією RND із VBA.

Як функція робочого аркуша “RAND”, у VBA “RND” також генерує випадкові числа, які перевищують 0, але менше 1.

Тепер погляньте на синтаксис функції “RND”.

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

  • Якщо ми передаємо число як <0, воно продовжує генерувати одне і те ж випадкове число кожного разу.
  • Якщо ми передамо число як 0, воно повторить останнє число, яке воно дало.
  • Якщо ми передаємо число> 0, воно продовжує давати вам різні випадкові числа, тобто наступне випадкове число в послідовності.

Приклад

Для прикладу перегляньте наведений нижче код.

Код:

 Sub RND_Example () Налагодження. Друк Rnd End Sub 

Коли я запускаю код у безпосередньому вікні, я бачу номер нижче.

Подібним чином, коли я виконую цей код ще 3 рази, я бачу наведені нижче цифри.

Зараз я закрию книгу та відкрию її знову.

Тепер я повернусь до вікна редактора Visual Basic.

Тепер безпосереднє вікно порожнє і чисте.

Тепер я знову виконаю код чотири рази і подивлюся, які цифри ми отримаємо в безпосередньому вікні.

Ми отримали ті самі цифри, що й вище.

Це не схоже на випадкове число, оскільки кожного разу, коли ми знову відкриваємо файл, ми, як правило, отримуємо однакові числа, починаючи з нуля.

Отже, як ми генеруємо випадкові числа незалежно від того, відкрито книгу чи ні?

Нам потрібно скористатися твердженням «Randomize».

Як використовувати виписку про випадковість VBA?

Ви можете завантажити цей шаблон VBA Randomize Excel тут - VBA Randomize Excel шаблон

Приклад №1

Щоб отримати випадкові числа, все, що нам потрібно зробити, це додати простий однолінійний “Randomize” перед функцією RND.

Код:

 Sub Randomize_1 () Randomize Debug.Print Rnd End End Sub 

Тепер я запущу код 4 рази і подивлюсь, що отримаю.

Він згенерував вказані вище номери у моєму локальному вікні.

Тепер я закрию файл і знову відкрию файл ще раз.

Як зазвичай, ми починаємо з чистого аркуша у вікні Visual Basic.

Тепер я знову виконаю код і подивлюся, які цифри ми отримаємо цього разу.

Ого!!! Цього разу ми отримали різні цифри.

Оскільки ми додали оператор Randomize перед функцією RND, ми отримуємо різні випадкові числа кожного разу, коли ми знову відкриваємо файл.

Це схоже на випадкове число, чи не так ???

Приклад №2

Випадкові числа, більші за одиницю

Як ми бачили, функція “RND” може генерувати числа лише від 0 до 1. Але для того, щоб генерувати числа, більші за одне випадкове число, нам потрібно використовувати “СЛУЧАЙНИЙ МІЖ”, який доступний із класом функції робочого аркуша.

Отже, для генерації випадкових чисел, більших за одиницю, нам потрібно використовувати наведений нижче код.

Код:

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

Зараз я виконаю код і подивлюсь, що ми отримаємо.

Подібно до цього, ми можемо використовувати оператор “Randomize” у VBA для генерації випадкових чисел кожного разу, коли ми знову відкриваємо файл excel.