U ovom članku stvorit ćemo okvir s popisom u korisničkom obliku i učitati ga vrijednostima nakon uklanjanja dupliciranih vrijednosti.
Sirovi podaci koje ćemo umetnuti u okvir s popisom sastoje se od naziva. Ti neobrađeni podaci sadrže dvoličnost u definiranim nazivima.
U ovom primjeru stvorili smo korisnički oblik koji se sastoji od okvira s popisom. Ovaj okvir s popisom prikazat će jedinstvena imena iz uzoraka podataka. Da biste aktivirali korisnički obrazac, kliknite gumb za slanje.
Ovaj korisnički oblik vratit će ime koje je korisnik odabrao kao izlaz u okviru za poruku.
Logično objašnjenje
Prije dodavanja imena u okvir s popisom, koristili smo objekt zbirke za uklanjanje dupliciranih imena.
Izveli smo sljedeće korake za uklanjanje dupliciranih unosa:-
-
Objektu zbirke dodani su nazivi iz definiranog raspona u Excelovom listu. U objekt zbirke ne možemo umetnuti dvostruke vrijednosti. Dakle, objekt Collection baca grešku pri nailasku na dvostruke vrijednosti. Za rješavanje pogrešaka upotrijebili smo izjavu o pogrešci “On Error Resume Next”.
-
Nakon pripreme zbirke, dodajte sve stavke iz zbirke u niz.
-
Zatim umetnite sve elemente niza u okvir s popisom.
Molimo slijedite dolje za kôd
Opcija Explicit Sub running () UserForm1.Show End Sub 'Dodaj donji kod u korisnički obrazac Opcija Eksplicitna privatna podredba CommandButton1_Click () Dim var1 As String Dim i As Integer' Petlja kroz sve vrijednosti prisutne u okviru s popisom 'Dodjeljivanje odabrane vrijednosti varijabli var1 Za i = 0 Za ListBox1.ListCount - 1 Ako je ListBox1.Selected (i) Tada je var1 = ListBox1.List (i) Izađi za kraj ako je Sljedeće 'Raspoloži korisnički obrazac. Unload Me 'Prikazivanje odabrane vrijednosti MsgBox "Izabrali ste sljedeće ime u okviru s popisom:" & var1 End Sub Private Sub UserForm_Initialize () Dim MyUniqueList Kao Variant, i As Long' Calling UniqueItemList function 'Dodjeljivanje raspona kao ulaznog parametra MyUniqueList = UniqueItemList (Raspon ("A12: A100"), Tačno) Sa Me.ListBox1 'Brisanje sadržaja okvira s popisom. Obriši' Dodavanje vrijednosti u okvir popisa za i = 1 na UBound (MyUniqueList) .AddItem MyUniqueList (i) Sljedeće i ' Odabir prve stavke .ListIndex = 0 Završi s Kraj Pod -privatna funkcija UniqueItemList (InputRange As Range, _ HorizontalList As Boolean) As Variant Dim cl As Range, cUnique As New Collection, i As Long 'Deklariranje dinamičkog niza Dim uList () kao Varijanta 'Deklariranje ove funkcije kao promjenjive' Funkcija znači da će se ponovno izračunati svaki put kada se u bilo kojoj ćeliji izvrši izračun. Promjenjivo Uključeno Pogreška Nastavi Sljedeće "Dodavanje stavki u zbirku" Umetnut će se samo jedinstvena stavka "Umetanje duplicirane stavke bit će pogreška za svaku cl In InputRange If cl.Value "" Then 'Dodavanje vrijednosti u zbirku cUnique.Add cl.Value, CStr (cl.Value) End If Next cl' Pokretanje vrijednosti vraća funkcija UniqueItemList = "" If cUnique.Count> 0 Then 'Promjena veličine polja ReDim uList (1 To cUnique.Count)' Umetanje vrijednosti iz zbirke u niz Za i = 1 U cUnique.Count uList (i) = cUnique (i) Dalje i UniqueItemList = uList 'Provjera vrijednosti HorizontalList' Ako je vrijednost istinita, tada se transponira vrijednost UniqueItemList Ako nije HorizontalList Tada UniqueItemList = _ Application.WorksheetFunction.Transpose (UniqueItemList) End If End If On Greška GoTo 0 End Function
Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.
Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte