Генерирайте 3 уникални случайни числа в Microsoft Excel

Anonim

Ако искате да генерирате списък с уникални случайни числа, можете да използвате функциите RANDBETWEEN & VBA RND. В тази статия ще генерираме 3 уникални номера от предоставения списък.

Можете да намерите оригинален въпрос тук

Въпрос: Искам макрос да генерира списък от 3 случайни числа от списък с числа, записани в колона А. Има условие, за което трябва да се погрижим за VBA кода. Условието е, че има 3 числа, които съществуват в колона B, следователно макросът трябва да създаде списък с числа, които не са се появявали веднъж в колона B. По този начин можем да имаме списък с уникални числа в колона B & C.

Следва моментната снимка на примера, който имаме:

За да получите списъка с уникални случайни числа; трябва да следваме стъпките по -долу, за да стартираме VB редактор

  • Кликнете върху раздела Разработчик
  • От групата кодове изберете Visual Basic

  • Копирайте кода по -долу в стандартния модул
Sub RandomNumbers () Dim ws As Workheet 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). Цикъл на стойност до диапазон ("B1: C24"). Намерете (what: = myVal, lookat: = xlWhole) не е нищо. Range ("C" & i) .Value = myVal Next i End With End Sub 

  • За да стартираме макроса, можем да натиснем клавиша F5 от клавиатурата, ако сте активни на екрана на Visual Basic Editor
  • Друг начин за стартиране на макроса е използването на клавиша “ALT + F8”; изберете макроса и щракнете върху бутона Run

  • Докато изпълняваме VBA кода, уникалният списък с числа ще се генерира автоматично

Код Обяснение:

В горния код ще използваме функцията RND & INT заедно с For loop & Do цикъл, за да получим резултата.

  • Обявяваме Dim ws като работен лист; целта на декларирането на ws като работен лист е, че искаме само кодът да се изпълнява на конкретен работен лист, т.е. Numbers в нашия пример
  • Dim RandomNum As Long: това ще запази уникалните числа
  • Задайте ws = ThisWorkbook.Sheets ("Numbers"): този ред ще гарантира, че кодът работи само на лист Numbers
  • Следващият ред код ще използва оператор With
  • ar = .Range ("A" & Rows.Count) .End (xlUp) .Row: този ред ще запише последната клетка в колона A (24 в нашия пример)
  • .Range ("C1: C3"). ClearContents: този ред ще изтрие всяко съществуващо съдържание в диапазон C1: C3
  • След това ще стартираме цикъл For, започвайки от 1 до 3 пъти с Do Loop, за да генерираме списък със случайни числа и да проверим дали няма дубликати в съществуващия диапазон, т.е. колона B

Заключение: Можем да генерираме списък с отделни случайни числа от списък в Microsoft Excel с малки настройки в горния код на VBA.

Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта