VBA - Populacijski niz s jedinstvenim vrijednostima iz stupca

Ovaj vodič će vas naučiti kako popuniti niz jedinstvenim vrijednostima iz stupca u VBA -i.

Popuni niz s jedinstvenim vrijednostima iz stupca

Uzimanje popisa vrijednosti s Excelovog lista u niz stvar je prolaska kroz retke u Excelu i popunjavanja niza.

Razmotrite sljedeći popis kupaca u Excel listu.

Koristeći petlju, mogli bismo popuniti niz u VBA. Međutim, standardna petlja će se provlačiti kroz svaki redak, uključujući duplicirane retke, pa ćete završiti s dupliciranim vrijednostima u svom nizu.

Rješenje za prolazak kroz ćelije i popunjavanje objekta Zbirke vrijednostima kao objekt zbirke neće dopustiti duplikate. Zatim možete koristiti taj objekt zbirke za popunjavanje vašeg niza.

1234567891011121314151617181920212223242526 Sub PopulateUniqueArray ()Dim StrCustomers () As StringDim Col kao nova kolekcijaDim valCell As StringDim i Kao cijeli brojDim n kao cijeli broj'broji retke u rasponun = Raspon ("A1", Raspon ("A1"). Kraj (xlDown)). Rows.Count'Napuni privremenu zbirkuUključeno Slijedi nastavak greškeZa i = 0 To nvalCell = Raspon ("A1"). Odmak (i, 0) .VrijednostPukovnik.Dodaj valCell, valCellSljedeći iGreška.JasnoUključeno Greška Idi na 0'Promijeni veličinu nn = Col.Count'Redeclare nizReDim StrCustomers (1 To n)'Napunite niz prolaskom kroz zbirkuZa i = 1 Za stupStrCustomers (i) = Col (i)Sljedeći iDebug.Print Join (StrCustomers (), vbCrLf)Kraj podm

Populacijski niz w/ jedinstvene vrijednosti - funkcija

Gornji primjer pokazao je postupak koji bi izveo vaše željene radnje. No, umjesto toga, radije biste željeli prijenosnu funkciju za izvršavanje zadatka:

123456789101112131415161718192021222324 Funkcija CreateUniqueList (nStart as Long, nEnd as long) kao VariantDim Col kao nova kolekcijaDim arrTemp() Kao NizDim valCell As StringDim i Kao cijeli broj'Napuni privremenu zbirkuUključeno Slijedi nastavak greškeZa i = 0 do nEndvalCell = Raspon ("A" & nStart) .Offset (i, 0) .VrijednostPukovnik.Dodaj valCell, valCellSljedeći iGreška.JasnoUključeno Greška Idi na 0'Promijeni veličinu nnEnd = Col.Count'Redeclare nizReDim arrTemp(1 KRAJU)'Popuni privremeni niz ponavljanjem kroz zbirkuZa i = 1 Za stuparrTemp(i) = Col (i)Sljedeći i'vratite privremeni niz u rezultat funkcijeCreateUniqueList = arrTemp()Završna funkcija

Da biste koristili funkciju, morat ćete je pozvati iz podpostupka:

123456789 Potpopulacijski niz ()Dim StrCustomers () As StringDim strCol kao zbirkaDim n As Long'broji retke u rasponun = Raspon ("A1", Raspon ("A1"). Kraj (xlDown)). Rows.Count'pokrenite funkciju za stvaranje niza jedinstvenih vrijednostistrCustomers () = CreateUniqueList (1, n)Kraj podm
wave wave wave wave wave