Jos haluat luoda luettelon ainutlaatuisista satunnaislukuista, voit käyttää RANDBETWEEN -toimintoja ja VBA RND -toimintoa. Tässä artikkelissa luomme 3 yksilöllistä numeroa annetusta luettelosta.
Alkuperäinen kysymys löytyy täältä
Kysymys: Haluan, että makro luo luettelon 3 satunnaisluvusta sarakkeeseen A tallennetuista numeroista. VBA -koodista on pidettävä huolta. Ehto on, että sarakkeessa B on kolme numeroa, joten makron on luotava luettelo numeroista, joita ei ole esiintynyt kerran sarakkeessa B. Tällä tavalla sarakkeissa B ja C voi olla luettelo yksilöllisistä numeroista.
Seuraavassa on tilannevedos esimerkistämme:
Saat luettelon ainutlaatuisista satunnaislukuista; meidän on noudatettava alla olevia vaiheita VB -editorin käynnistämiseksi
- Napsauta Kehittäjä -välilehteä
- Valitse koodiryhmästä Visual Basic
- Kopioi alla oleva koodi vakiomoduuliin
Alit RandomNumbers () Dim ws laskentataulukkona Dim ar Variant Dim Dim RandomNum Niin kauan Dim i Kuten 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") & Satunnaisluku) .Arvosilmukka alueeseen asti ("B1: C24"). Etsi (mitä: = myVal, lookat: = xlWhole) ei ole mitään .Range ("C" & i) .Arvo = myVal Seuraava i End With End Sub
- Makron suorittamiseksi voimme painaa näppäimistön F5 -näppäintä, jos olet aktiivinen Visual Basic Editorin näytössä
- Toinen tapa suorittaa makro on käyttää ALT + F8 -näppäintä; valitse makro ja napsauta Suorita -painiketta
- Kun suoritamme VBA -koodia, yksilöllinen numeroluettelo luodaan automaattisesti
Koodin selitys:
Yllä olevassa koodissa käytämme RND & INT -funktiota yhdessä For loop & Do -silmukan kanssa tuloksen saamiseksi.
- Ilmoitamme Dim ws -työarkiksi; ws: n julistaminen laskentataulukkoksi on, että haluamme koodin toimivan vain tietyllä laskentataulukolla, esim.
- Dim RandomNum as Long: tämä tallentaa yksilölliset numerot
- Aseta ws = ThisWorkbook.Sheets ("Numbers"): tämä rivi varmistaa, että koodi toimii vain Numbers -taulukossa
- Seuraavalla koodirivillä käytetään lausetta
- ar = .Range ("A" & Rows.Count) .End (xlUp). Rivi: tämä rivi tallentaa sarakkeen A viimeisen solun (esimerkissämme 24)
- .Range ("C1: C3"). ClearContents: tämä rivi poistaa kaiken sisällön alueelta C1: C3
- Seuraavaksi suoritamme silmukan 1-3 kertaa Do Loopilla luodaksemme luettelon satunnaislukuista ja tarkistamalla, ettei olemassaolevalla alueella ole kaksoiskappaleita, eli sarake B
Johtopäätös: Voimme luoda luettelon erillisistä satunnaislukuista Microsoft Excelin luettelosta pienellä säätämisellä yllä olevaan VBA -koodiin.
Jos pidit blogistamme, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.
Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa, täydentää tai innovoida työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse