Vygenerujte 3 jedinečné náhodné čísla v programe Microsoft Excel

Anonim

Ak chcete vygenerovať zoznam jedinečných náhodných čísel, môžete použiť funkcie RANDBETWEEN a VBA RND. V tomto článku vygenerujeme 3 jedinečné čísla z poskytnutého zoznamu.

Pôvodnú otázku nájdete tu

Otázka: Chcem, aby makro generovalo zoznam 3 náhodných čísel zo zoznamu čísel uložených v stĺpci A. Existuje podmienka, že o kód VBA sa treba starať. Podmienkou je, že v stĺpci B existujú 3 čísla, a preto musí makro vytvoriť zoznam čísel, ktoré sa v stĺpci B nevyskytli ani raz. Týmto spôsobom môžeme mať v stĺpci B a C zoznam jedinečných čísel.

Nasleduje prehľad príkladu, ktorý máme:

Ak chcete získať zoznam jedinečných náhodných čísel; na spustenie editora VB musíme postupovať podľa nižšie uvedených krokov

  • Kliknite na kartu Vývojár
  • Zo skupiny kódov vyberte Visual Basic

  • Skopírujte nižšie uvedený kód do štandardného modulu
Podradené náhodné čísla () Dim ws ako pracovný list Dim ar ako 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 ). Ukončiť (xlUp). Riadok. Rozsah („C1: C3“). Vymazať obsah pre i = 1 až 3 Do RandomNum = Int ((1 - ar + 1) * Rnd + ar) myVal = .Range („A“ & RandomNum). Hodnotová slučka do rozsahu („B1: C24“). Nájsť (čo: = myVal, lookat: = xlWhole) nie je nič. Rozsah („C“ & i). Hodnota = myVal Ďalej i Koniec s koncovou podskupinou 

  • Makro spustíme stlačením klávesu F5 z klávesnice, ak ste aktívny na obrazovke editora jazyka
  • Ďalším spôsobom, ako spustiť makro, je kláves „ALT + F8“; vyberte makro a kliknite na tlačidlo Spustiť

  • Keď spustíme kód VBA, automaticky sa vygeneruje jedinečný zoznam čísel

Vysvetlenie kódu:

Vo vyššie uvedenom kóde použijeme na získanie výsledku funkciu RND a INT spolu so slučkou For loop & Do.

  • Deklarujeme Dim ws ako pracovný list; účelom deklarovania ws ako pracovného hárka je, že chceme, aby sa kód spustil iba na konkrétnom pracovnom hárku, tj. čísla v našom prípade
  • Dim RandomNum As Long: toto uloží jedinečné čísla
  • Nastaviť ws = ThisWorkbook.Sheets ("Numbers"): tento riadok zabezpečí, že kód bude bežať iba na liste Numbers
  • Nasledujúci riadok kódu použije príkaz With
  • ar = .Range ("A" & Rows.Count). End (xlUp) .Row: tento riadok uloží poslednú bunku do stĺpca A (v našom prípade 24)
  • .Range ("C1: C3"). ClearContents: tento riadok vymaže všetok existujúci obsah v rozsahu C1: C3
  • Ďalej spustíme slučku For počnúc 1 až 3 krát pomocou Do Loop, aby sme vygenerovali zoznam náhodných čísel a skontrolovali sme žiadne duplikáty v existujúcom rozsahu, tj. Stĺpci B

Záver: Zoznam rôznych náhodných čísel môžeme vygenerovať zo zoznamu v programe Microsoft Excel s malým vyladením vyššie uvedeného kódu VBA.

Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku.

Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku