我有两个列表框。列表框1有一个项目列表,用户可以通过双击该项目或按添加按钮将其转移到列表框2。我现在要做的是防止用户在列表框2中添加重复项。如果检测到重复项,则会出现一条消息提示“项目已包含”并结束代码。我猜这可以通过包含来完成。但我不知道怎么做。我有以下代码:
'Report Listing
Private Sub UserForm_Initialize()
'List of Reports
With ListBox1
.AddItem "Report 1"
.AddItem "Report 2"
.AddItem "Report 3"
.AddItem "Report 4"
.AddItem "Report 5"
.AddItem "Report 6"
End With
End Sub
'Add selection to ListBox2
Private Sub AddButton_Click()
With ListBox1
Dim itemIndex As Integer
For itemIndex = .ListCount - 1 To 0 Step -1
If .Selected(itemIndex) Then
ListBox2.AddItem .List(itemIndex)
End If
Next itemIndex
End With
End Sub
'Double click to Add
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox2.AddItem ListBox1.List(ListBox1.ListIndex)
End Sub
2条答案
按热度按时间qacovj5a1#
像这样的东西希望能帮助你。
AddValueListbox2
函数检查值是否存在,如果不存在则添加该值,如果存在则向用户发出警报。NB如果您为列表框启用了多选,则此选项将起作用。
7kjnsjlb2#
如果有人仍然感兴趣,还有另一种方法可以做到这一点,使用类似的技术。
其中myval是从listbox1中选择的值。
本质上,如果它在列表中找到一个引用你的值的示例,它将启动一个计数器,如果没有找到你的值的示例,它将把它插入列表框。
希望这能帮到什么人。