This worked ok for me:
Option Explicit
Private Sub CommandButton1_Click()
Dim iCtr As Long
Dim res As Variant
Dim myArr() As String
With Me.ListBox2
ReDim myArr(0 To .ListCount - 1)
For iCtr = 0 To .ListCount - 1
myArr(iCtr) = .List(iCtr, 0)
Next iCtr
End With
With Me.ListBox1
'bottom up
For iCtr = .ListCount - 1 To 0 Step -1
res = Application.Match(.List(iCtr), myArr, 0)
If IsError(res) Then
'no match, keep it
Else
.RemoveItem iCtr
End If
Next iCtr
End With
End Sub
Private Sub UserForm_Initialize()
Dim iCtr As Long
With Me.ListBox1
.ColumnCount = 1
For iCtr = 1 To 5
.AddItem "a" & iCtr
Next iCtr
For iCtr = 9 To 15
.AddItem "a" & iCtr
Next iCtr
End With
With Me.ListBox2
.ColumnCount = 1
For iCtr = 3 To 7
.AddItem "a" & iCtr
Next iCtr
End With
End Sub
LaDdIe wrote:
>
> Could I please have assistance with the code below, my aim is to compare
> contents of ListBox2 with ListBox1 if a match is found to remove it from
> ListBox1;
>
> Dim i As Long, j As Long
>
> For i = 0 To ListBox2.ListCount - 1
> DoEvents
> ListBox2.ListIndex = i
> For j = 0 To ListBox1.ListCount - 1
> DoEvents
> ListBox1.ListIndex = j
> If InStr(1, ListBox2.List(ListBox2.ListIndex),
> ListBox1.List(ListBox1.ListIndex)) Then
> ListBox1.RemoveItem (j)
> End If
> Next j
> Next i
>
> End Sub
--
Dave Peterson
|