Сформировать 3 номера Уникальные Случайные в Microsoft Excel
Если вы хотите создать список уникальных случайных чисел, вы можете использовать функции RANDBETWEEN и VBA RND. В этой статье мы сгенерируем 3 уникальных числа из предоставленного списка .
Вы можете найти исходный вопрос http://www.excelforum.com/excel-programming-vba-macros/1093315-vba-for-do- while-loop.html[здесь]
Вопрос: Я хочу, чтобы макрос генерировал список из 3 случайных чисел из списка чисел, сохраненного в столбце A. Есть условие, о котором необходимо позаботиться о коде VBA. Условие состоит в том, что в столбце B есть 3 числа, поэтому макросу необходимо создать список чисел, которые ни разу не встречались в столбце B. Таким образом, мы можем получить список уникальных номеров в столбцах B и C.
Ниже приведен снимок имеющегося у нас примера:
===
Получить список уникальных случайных чисел; нам нужно выполнить следующие шаги, чтобы запустить редактор VB. Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic
-
Скопируйте приведенный ниже код в стандартный модуль
Sub RandomNumbers() Dim ws As Worksheet Dim ar As Variant Dim RandomNum As Long Dim i As Integer Dim myVal As Long Randomize Set ws = ThisWorkbook.Sheets("Numbers") With ws ar = .Range("A" & Rows.Count).End(xlUp).Row .Range("C1:C3").ClearContents For i = 1 To 3 Do RandomNum = Int((1 - ar + 1) * Rnd + ar) myVal = .Range("A" & RandomNum).Value Loop Until Range("B1:C24").Find(what:=myVal, lookat:=xlWhole) Is Nothing .Range("C" & i).Value = myVal Next i End With End Sub
Чтобы запустить макрос, мы можем нажать клавишу F5 на клавиатуре, если вы активны на экране редактора Visual Basic. Другой способ запустить макрос — использовать клавишу «ALT + F8»; выберите макрос и нажмите кнопку «Выполнить»
-
Когда мы запускаем код VBA, автоматически создается уникальный список чисел
Пояснение к коду:
В приведенном выше коде мы будем использовать функцию RND & INT вместе с циклом For loop & Do, чтобы получить результат.
-
Мы объявляем Dim ws рабочим листом; цель объявления ws как рабочего листа состоит в том, что мы хотим, чтобы код выполнялся только на определенном рабочем листе, т.е.
Числа в нашем примере Dim RandomNum As Long: это сохранит уникальные числа Set ws = ThisWorkbook.Sheets («Numbers»): эта строка гарантирует, что код будет работать только на листе Numbers. В следующей строке кода будет использоваться оператор With ar = .Range («A» & Rows.Count) .End (xlUp) .Row: эта строка сохранит последнюю ячейку в столбце A (24 в нашем примере)
Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook .
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]