Aizpildiet sarakstu lodziņu ar unikālām vērtībām no darblapas, izmantojot Microsoft Excel VBA

Anonim

Šajā rakstā mēs izveidosim saraksta lodziņu lietotāja formā un pēc vērtību dublikātu noņemšanas ielādēsim tajā vērtības.

Neapstrādāti dati, kurus mēs ievietosim saraksta lodziņā, sastāv no nosaukumiem. Šie neapstrādātie dati satur dublēšanos noteiktos nosaukumos.

Šajā piemērā mēs esam izveidojuši lietotāja veidlapu, kas sastāv no saraksta lodziņa. Šajā saraksta lodziņā tiks parādīti unikāli datu paraugu nosaukumi. Lai aktivizētu lietotāja formu, noklikšķiniet uz pogas Iesniegt.

Šī lietotāja veidlapa ziņu lodziņā atgriezīs lietotāja izvēlēto vārdu.

Loģisks skaidrojums

Pirms vārdu pievienošanas saraksta lodziņam esam izmantojuši kolekcijas objektu, lai noņemtu dublētos nosaukumus.

Mēs esam veikuši šādas darbības, lai noņemtu dublētus ierakstus:-

  1. Kolekcijas objektam pievienoti nosaukumi no definētā diapazona Excel lapā. Kolekcijas objektā mēs nevaram ievietot dublikātu vērtības. Tātad kolekcijas objekts rada kļūdu, sastopoties ar dublikātu vērtībām. Lai apstrādātu kļūdas, esam izmantojuši kļūdas paziņojumu “Par kļūdu atsākt nākamo”.

  2. Pēc kolekcijas sagatavošanas masīvam pievienojiet visus krājuma priekšmetus.

  3. Pēc tam ievietojiet visus masīva elementus saraksta lodziņā.

Lūdzu, sekojiet tālāk norādītajam kodam

 Opcija Explicit Sub darbojas () UserForm1.Show End Sub 'Pievienot zemāk esošo kodu lietotāja formā Opcija Explicit Private Sub CommandButton1_Click () Dim var1 As String Dim i As Integer' Looping caur visām vērtībām, kas atrodas saraksta lodziņā 'Atlasītās vērtības piešķiršana mainīgajam var1 Attiecībā uz i = 0 uz ListBox1.ListCount - 1 Ja ListBox1.Selected (i) Tad var1 = ListBox1.List (i) Exit For End If Next 'Izlādējiet lietotāja veidlapu. Unload Me 'Parādot atlasīto vērtību MsgBox "Saraksta lodziņā esat izvēlējies šādu nosaukumu:" & var1 End Sub Private Sub UserForm_Initialize () Dim MyUniqueList As Variant, i As Long' Calling UniqueItemList function 'Diapazona piešķiršana kā ievades parametrs MyUniqueList = UniqueItemList (Diapazons ("A12: A100"), True) With Me.ListBox1 'Saraksta lodziņa satura notīrīšana. Notīrīt' Vērtību pievienošana saraksta lodziņā For i = 1 To UBound (MyUniqueList) .AddItem MyUniqueList (i) Next i ' Pirmā vienuma izvēle .ListIndex = 0 Beigt ar beigu apakšprivātu privāto funkciju UniqueItemList (InputRange As Range, _ HorizontalList As Boolean) Kā Variant Dim cl As Range, cUnique As New Collection, i As Long 'Dinamiska masīva deklarēšana Dim uList () As Variants "Šīs funkcijas pasludināšana par gaistošu" Līdzekļi Funkcija tiks pārrēķināta ikreiz, kad tiek veikts aprēķins jebkurā šūnā Lietojumprogramma. Gaistoša kļūda Atsākt nākamo "Vienumu pievienošana kolekcijai" Tiks ievietots tikai unikāls vienums "Ievietojot dublētu vienumu, tiks parādīta kļūda cl In InputRange If cl.Value "" Tad "Vērtību pievienošana kolekcijai cUnique.Add cl.Value, CStr (cl.Value) End If Next cl" Vērtības inicializēšana ar funkciju UniqueItemList = "" If cUnique.Count> 0 Tad 'Masīva izmēra lieluma maiņa ReDim uList (1 uz cUnique.Count)' Vērtību ievietošana no kolekcijas masīvā For i = 1 To cUnique.Count uList (i) = cUnique (i) Next i UniqueItemList = uList 'HorizontalList vērtības pārbaude' Ja vērtība ir patiesa, tad UniqueItemList If transponēšanas vērtība Ja nav HorizontalList, tad UniqueItemList = _ Application.WorksheetFunction.Transpose (UniqueItemList) Beigas Ja beigas Ja kļūda GoTo 0 End Function 

Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.

Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē