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