У меня есть пользовательская форма VBA с двумя списками.Я изо всех сил пытаюсь сделать следующую операцию:
Мне нужно проверить, содержит ли Listbox1 элементы списка из Listbox2, и если это так, удалите элементы в Listbox1, которые содержат элементы из Listbox2.Например, элемент "пурпурная обезьяна" в списке1 содержит "обезьяну" (элемент в списке 2), поэтому мне нужно удалить весь элемент "фиолетовая обезьяна".
Может ли кто-нибудь помочь мне с этим?
Я использую следующий код для создания первичного списка (Ключевые слова) и инициализации пользовательской формы.Кроме того, я создаю текстовое поле, в которое пользователь вводит элементы, и они добавляются в Listbox2.Этот код работает хорошо:
Private Sub UserForm_Initialize()
Application.Visible = False
Keywords.SetFocus
TextBox2.Value = NegKeyList.ListCount & "negative keys"
Dim mycollection As Collection, cell As Range
On Error Resume Next
Set mycollection = New Collection
With Keywords
.Clear
For Each cell In Worksheets("Rawdata").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If Len(cell) <> 0 Then
Err.Clear
mycollection.Add cell.Value, cell.Value
If Err.Number = 0 Then .AddItem cell.Value
End If
Next cell
End With
MsgBox mycollection.Count & "added to the list"
If Keywords.ListCount > 0 Then
TextBox1.Value = Keywords.ListCount & " keys"
End If
End Sub
Теперь мне нужно создать другую функцию, чтобы пользователь мог нажать кнопку и удалить все ключевые слова, содержащие элементы ListBox2 (необязательно равные им).