Ustvarite seznam edinstvenih naključnih števil z uporabo VBA v programu Microsoft Excel

Kazalo

V tem članku bomo ustvarili funkcijo po meri za ustvarjanje seznama edinstvenih in naključnih števil med določenimi območji.

V tem primeru lahko zaženemo makro s klikom na gumb »Pošlji«. Pred zagonom makra moramo vnesti vrednosti za štiri parametre. Dobavili smo spodnjo mejno vrednost v celici C12, zgornjo mejo v celici C13, število edinstvenih naključnih zahtev v celici C14 in ciljni naslov, ki je bil izpisan v celici C15.

Logična razlaga

Ustvarili smo funkcijo po meri "UniqueRandomNumbers" za ustvarjanje seznama edinstvenih in naključnih števil. Ta funkcija za vhodne parametre vzame zahtevano število, spodnjo mejo in zgornjo mejo.

Ustvarili smo makro »TestUniqueRandomNumbers«, da pokličemo funkcijo po meri »UniqueRandomNumbers«. Ta makro se izvede s klikom na gumb »Pošlji«. Ta makro vnese uporabnikovo vnosno vrednost iz območja C12 do C15.

Razlaga kode

i = CLng (Rnd () * (ULimit - LLimit) + LLimit)

Zgornja formula se uporablja za ustvarjanje naključnega števila med definirano zgornjo in spodnjo mejo. Funkcija Rnd () ustvari naključno število med 0 in 1.

Obseg (Izbor, Izbor. Odmik (Števec - 1, 0)). Vrednost = _

Application.Transpose (RandomNumberList)

Zgornja koda se uporablja za prenos izhoda matrike in dodelitev izhoda določenemu cilju.

Za kodo sledite spodaj

 Možnost Eksplicitna funkcija UniqueRandomNumbers (NumCount As Long, LLimit As Long, ULimit As Long) As Variant 'Označevanje spremenljivk Dim RandColl As Collection Dim i As Long Dim varTemp () As Long' Preverjanje vrednosti, ki jo je določil uporabnik Če NumCount ULimit Potem UniqueRandomNumbers = "Določena spodnja meja je večja od določene zgornje meje" Zapusti funkcijo Konec Če Če NumCount> (ULimit - LLimit + 1) Potem je UniqueRandomNumbers = "Število zahtevanega edinstvenega naključnega števila je večje od največjega števila edinstvenega števila, ki lahko obstaja med spodnjo meja in zgornja meja "Izhod Funkcija Konec Če" Ustvarjanje novega predmeta zbiranja Nastavi RandColl = Novo zbirko Naključno Naredi Napaka Nadaljuj Napaka Naprej "Izračun naključnega števila, ki obstaja med spodnjo in zgornjo mejo i = CLng (Rnd () * (ULimit - LLimit) + LLimit) 'Vstavljanje edinstvenega naključnega števila v zbirko RandColl.Add i, CStr (i) On Error GoTo 0' Looping dokler zbirka nima elementov enakih numCount Loop Do RandColl.Count = Num Count ReDim varTemp (1 To NumCount) 'Dodelitev vrednosti elementov v zbirki matriki varTemp Za i = 1 Za NumCount varTemp (i) = RandColl (i) Naprej i UniqueRandomNumbers = varTemp Set RandColl = Nič Izbriši varTemp Konec funkcije Pod TestUniqueRamps () 'Razglasi spremenljivke Dim RandomNumberList kot variacijo Dim Counter As Long, LowerLimit As Long, UpperLimit As Long Dim Address As String' Pridobivanje vrednosti, ki jih vnese uporabnik Counter = Range ("C14"). Value LowerLimit = Range ("C12" ) .Value UpperLimit = Range ("C13"). Value Address = Range ("C15"). Value "Klicanje funkcije po meri UniqueRandomNumbers RandomNumberList = UniqueRandomNumbers (Counter, LowerLimit, UpperLimit)" Izbira ciljnega območja (naslova). vrednost v ciljnem območju (Izbor, Izbor. Odmik (Števec - 1, 0)). Vrednost = _ Aplikacija.Prenos (RandomNumberList) End Sub 

Če vam je bil ta blog všeč, ga delite s prijatelji na Facebooku. Prav tako nam lahko sledite na Twitterju in Facebooku.

Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo svoje delo in ga izboljšamo za vas. Pišite nam na spletnem mestu e -pošte

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave