VBA Randomize | Как использовать случайное выражение?

Произвольный оператор в 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 раза, я вижу числа ниже.

Теперь я закрою книгу и снова открою ее.

Теперь я вернусь к окну визуального базового редактора.

Теперь ближайшее окно пусто и чисто.

Теперь я снова выполню код четыре раза и посмотрю, какие числа мы получим в ближайшем окне.

У нас те же числа, что и выше.

Это не похоже на случайное число, потому что каждый раз, когда мы повторно открываем файл, мы получаем одни и те же числа, начиная с нуля.

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

Нам нужно использовать оператор «Randomize».

Как использовать оператор случайного выбора VBA?

Вы можете скачать этот шаблон VBA Randomize Excel здесь - 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.Print Rnd * 100 End Sub 

Теперь я выполню код и посмотрю, что у нас получится.

Таким образом, мы можем использовать оператор «Randomize» в VBA для генерации случайных чисел каждый раз, когда мы повторно открываем файл Excel.