Ако желите да генеришете листу јединствених случајних бројева, можете користити функције РАНДБЕТВЕЕН & ВБА РНД. У овом чланку ћемо генерисати 3 јединствена броја са наведене листе.
Оригинално питање можете пронаћи овде
Питање: Желим да макро генерише листу од 3 случајна броја са листе бројева сачуваних у колони А. Постоји услов да се мора водити рачуна о ВБА коду. Услов је да у колони Б постоје 3 броја, па макро мора да створи листу бројева који се нису једном појавили у колони Б. На овај начин можемо имати листу јединствених бројева у колони Б и Ц.
Следи снимак примера који имамо:
Да бисте добили листу јединствених случајних бројева; морамо да следимо кораке у наставку да бисмо покренули ВБ едитор
- Кликните на картицу Девелопер
- Из групе кодова изаберите Висуал Басиц
- Копирајте доњи код у стандардни модул
Суб РандомНумберс () Дим вс Ас Ворксхеет Дим ар Ас Вариант Дим РандомНум Ас Лонг Дим и Ас Интегер Дим миВал Ас Лонг Рандомизе Сет вс = ТхисВоркбоок.Схеетс ("Нумберс") Витх вс ар = .Ранге ("А" & Ровс.Цоунт ) .Енд (клУп) .Ров .Ранге ("Ц1: Ц3"). ЦлеарЦонтентс Фор и = 1 То 3 До РандомНум = Инт ((1 - ар + 1) * Рнд + ар) миВал = .Ранге ("А" & РандомНум). Петља вредности до опсега ("Б1: Ц24"). Пронађи (шта: = миВал, лоокат: = клВхоле) Није ништа. Ранге ("Ц" & и). Вредност = миВал Следеће и Заврши са Енд Суб
- Да бисмо покренули макро, можемо притиснути тастер Ф5 са тастатуре ако сте активни на екрану уређивача Висуал Басиц
- Други начин покретања макроа је коришћење тастера „АЛТ + Ф8“; изаберите макро и кликните на дугме Покрени
- Док покрећемо ВБА код, јединствена листа бројева ће се аутоматски генерисати
Објашњење кода:
У горњем коду користићемо функцију РНД & ИНТ заједно са Фор лооп & До лооп да бисмо добили резултат.
- Проглашавамо Дим вс као радни лист; сврха декларисања в -а као радног листа је да само желимо да се код изводи на одређеном радном листу, тј. бројевима у нашем примеру
- Дим РандомНум Ас Лонг: ово ће сачувати јединствене бројеве
- Сет вс = ТхисВоркбоок.Схеетс ("Нумберс"): ова линија ће осигурати да се код изводи само на листу Нумберс
- Следећи ред кода користиће наредбу Витх
- ар = .Ранге ("А" & Ровс.Цоунт) .Енд (клУп) .Ров: ова линија ће сачувати последњу ћелију у колони А (24 у нашем примеру)
- .Ранге ("Ц1: Ц3"). ЦлеарЦонтентс: ова линија ће избрисати сав постојећи садржај у опсегу Ц1: Ц3
- Затим ћемо покренути Фор петљу почевши од 1 до 3 пута помоћу До Лооп -а да бисмо генерисали листу случајних бројева и проверили да нема дупликата у постојећем опсегу, тј. Колони Б
Закључак: Можемо да генеришемо листу различитих случајних бројева са листе у Мицрософт Екцелу са малим подешавањем горњег ВБА кода.
Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште