Как генерировать случайные числа в vba?
В VBA вы можете использовать разные способы генерации случайного числа в Excel, и в этой статье мы рассмотрим их все один за другим.
функция РНД
Для генерации случайного числа в VBA есть функция RND . Эта функция означает случайную, и когда вы используете эту функцию в коде, она возвращает случайное число от 0 до 1. В RND вам не нужно указывать какой-либо аргумент.
Range("A1") = Rnd()
Приведенный выше код использует его для получения случайного числа в A1 и возвращает 0,705547521.

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

Вот здесь нет смысла его использовать, не так ли? Но есть решение, которое вы можете использовать: 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 удаляет десятичный знак.

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

Range("A1") = WorksheetFunction.RandBetween(1000, 2000)
Здесь максимальное число — 2000, а минимальное — 1000. Аналогичным образом вы можете использовать функцию RANDARRAY, которая является функцией динамического массива.
Вот код.
Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)

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