Я пытаюсь удалить элемент из списка, в котором соответствуют следующие критерии. У меня есть лист под названием «Данные», у меня есть три столбца, одно - это имя пользователя, а второе - дата, а третье - статус. У меня есть данные, как показано ниже:Удалить элемент из списка, который не соответствует макросу Excel
A Column ------ B Column ------ C Column
John ------ 09/08/2015 ---- Publish
Marie ------ 17/08/2015 ---- Publish
John ------ 08/08/2015 ---- Hold
Я написал один код, чтобы загрузить все имена ListBox, как показано ниже
ListBox2.clear
j = Sheets("Data").Range("A" & Sheets("Data").Rows.Count).End(xlUp).Row + 1
ListBox2.clear
Dim myList As Collection
Dim myRange As Range
Dim ws As Worksheet
Dim myVal As Variant
Set ws = ThisWorkbook.Sheets("Data")
Set myRange = ws.Range("A2", ws.Range("A2").End(xlDown))
Set myList = New Collection
On Error Resume Next
For Each myCell In myRange.Cells
myList.Add myCell.Value, CStr(myCell.Value)
Next myCell
On Error GoTo 0
For Each myVal In myList
ListBox2.AddItem myVal
Next myVal
код загрузит все элементы в ListBox. Но теперь моя проблема заключается в том, что у меня есть календарь, когда я выбираю данные, он должен загружать только тот элемент, который я выбрал, и статус удерживается. Поэтому из моего примера, если я выбираю «08/08/2015», он должен показывать только Джон, у меня есть ниже используется код для удаления элемента,
For k = j To 1 Step -1
If Format(Sheets("Data").Cells(k, "B"), "dd/mm/yyyy") <> Format(Calendar1.Value, "dd/mm/yyyy") Then
For i = ListBox2.ListCount - 1 To 0 Step -1
If ListBox2.List(i) = Sheets("Data").Cells(k, "A").Value Then
ListBox2.RemoveItem i
End If
Next
End If
Next k
Сво удаление всех данных, потому что Джон появился в другой день, любой другой код, который мы можем использовать?