Как генерировать случайные числа в vba?

В VBA вы можете использовать разные способы генерации случайного числа в Excel, и в этой статье мы рассмотрим их все один за другим.

функция РНД

Для генерации случайного числа в VBA есть функция RND . Эта функция означает случайную, и когда вы используете эту функцию в коде, она возвращает случайное число от 0 до 1. В RND вам не нужно указывать какой-либо аргумент.

 Range("A1") = Rnd()

Приведенный выше код использует его для получения случайного числа в A1 и возвращает 0,705547521.

генерировать случайное число в vba

Но когда вы используете его для всего диапазона, он возвращает одно и то же случайное число во всем диапазоне, и это делает его нулевым, чтобы его можно было использовать для генерации случайных чисел более одного раза.

вернуть то же самое случайное число

Вот здесь нет смысла его использовать, не так ли? Но есть решение, которое вы можете использовать: FOR NEXT LOOP .

использовать для следующего цикла

В приведенном выше коде у вас есть цикл, который проходит через 10 ячеек (одну за другой), начиная с выбранной ячейки, и добавляет случайное число.

Вот полный код:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Случайное число между двумя числами

Если вы хотите сгенерировать случайное число между двумя определенными числами, в этом случае вам нужно написать код, используя две функции VBA ( RND + INT ). Код этой формулы будет выглядеть следующим образом.

случайное число между двумя числами
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Когда вы запускаете этот макрос , RND использует максимальное и минимальное число, которое вы установили для генерации случайного числа, а INT удаляет десятичный знак.

rnd-используйте-максимальное и минимальное-число

Использование функций рабочего листа в коде VBA для генерации случайного числа

В VBA вы можете получить доступ к функциям рабочего листа и использовать их для получения результата, указав аргументы. Две функции электронных таблиц помогут вам получить в результате случайное число.

  • РандМежду
  • РэндТаблица

Прежде чем использовать эти функции, убедитесь, что вы понимаете аргументы, которые необходимо установить. Теперь в приведенном ниже коде у вас есть СЛУЧМЕЖДУ, который генерирует случайное число между двумя числами.

использование-randbetween-генерирует-случайное-число-между-двумя числами
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Здесь максимальное число — 2000, а минимальное — 1000. Аналогичным образом вы можете использовать функцию RANDARRAY, которая является функцией динамического массива.

Вот код.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
использовать-randarray-который-является-функцией-динамического-массива

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

randarray-синтаксис

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *