Pokud chcete vygenerovat seznam jedinečných náhodných čísel, můžete použít funkce RANDBETWEEN a VBA RND. V tomto článku vygenerujeme 3 jedinečná čísla z uvedeného seznamu.
Původní otázku najdete zde
Otázka: Chci, aby makro generovalo seznam 3 náhodných čísel ze seznamu čísel uložených ve sloupci A. Existuje podmínka, že je třeba se postarat o kód VBA. Podmínkou je, že ve sloupci B existují 3 čísla, proto makro potřebuje vytvořit seznam čísel, která se ve sloupci B nevyskytla ani jednou. Tímto způsobem můžeme mít ve sloupci B & C seznam jedinečných čísel.
Následuje snímek příkladu, který máme:
Získat seznam jedinečných náhodných čísel; pro spuštění VB editoru musíme postupovat podle níže uvedených kroků
- Klikněte na kartu Vývojář
- Ze skupiny kódů vyberte Visual Basic
- Zkopírujte níže uvedený kód do standardního modulu
Dílčí náhodná čísla () Dim ws jako pracovní list Dim ar jako varianta 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). Smyčka hodnoty do rozsahu („B1: C24“). Find (what: = myVal, lookat: = xlWhole) Is Nothing .Range („C“ & i) .Value = myVal Next i End With End Sub
- Makro spustíme stisknutím klávesy F5 z klávesnice, pokud jste aktivní na obrazovce editoru jazyka
- Další způsob spuštění makra je použití klávesy „ALT + F8“; vyberte makro a klikněte na tlačítko Spustit
- Při spuštění kódu VBA se automaticky vygeneruje jedinečný seznam čísel
Vysvětlení kódu:
Ve výše uvedeném kódu použijeme funkci RND & INT společně se smyčkou For loop & Do pro získání výsledku.
- Deklarujeme Dim ws jako pracovní list; účelem deklarace ws jako listu je, že chceme, aby kód běžel pouze na konkrétním listu, tj. čísla v našem příkladu
- Dim RandomNum As Long: toto uloží jedinečná čísla
- Nastavit ws = ThisWorkbook.Sheets ("Numbers"): tento řádek zajistí, že kód poběží pouze na listu Numbers
- Další řádek kódu použije příkaz With
- ar = .Range ("A" & Rows.Count) .End (xlUp) .Row: tento řádek uloží poslední buňku do sloupce A (v našem příkladu 24)
- .Range ("C1: C3"). ClearContents: tento řádek vymaže veškerý stávající obsah v rozsahu C1: C3
- Dále spustíme smyčku For počínaje 1 až 3krát pomocí Do Loop, abychom vygenerovali seznam náhodných čísel a zkontrolovali žádné duplikáty ve stávajícím rozsahu, tj. Sloupci B
Závěr: Seznam odlišných náhodných čísel můžeme vygenerovat ze seznamu v Microsoft Excelu s malým vyladěním výše uvedeného kódu VBA.
Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mail