我在Access VBA中有两个列表框。我想比较这两个列表框,并希望从第二个列表框中删除项目(如果第一个列表框中未列出相同的项目)。
例如:列表框 1 值:"项目 1"、"项目 3"列表框 2 值:"项目 1"、"项目 2"、"项目 3"
现在我想要一个函数来比较这两个列表框并从列表框 2 中删除"项目 2",因为它未在列表框 1 中列出。
我尝试了一些代码,但我唯一得到的是这个:
If BR_TeamReport.ListCount > 0 Then
For i = 0 To BR_TeamReport.ListCount - 1
For y = 0 To BR_Team.ListCount - 1
If BR_TeamReport.ItemData(i) = BR_Team.ItemData(y) Then
MsgBox ("Don't Delete")
Else
MsgBox ("Delete")
End If
Next y
Next i
End If
考虑一下:
If BR_TeamReport.ListCount > 0 Then
For i = 0 To BR_TeamReport.ListCount - 1
FoundItem = False
For y = 0 To BR_Team.ListCount - 1
If BR_TeamReport.ItemData(i) = BR_Team.ItemData(y) Then
FoundItem = True
End If
Next y
If Not FoundItem Then
' Delete item as it was not found in the first listbox
BR_Team.RemoveItem (y)
End If
Next i
End If
我认为这将实现您想要的。
为什么不清除第二个列表框,然后用第一个列表框重新填充?
For i = 0 To LstBox2.ListCount - 1
LstBox2.RemoveItem(i)
next i
For i = 0 TO LstBox1.ListCount - 1
lstBox2.AddItem LstBox1.ItemData(i)
Next i