我有兩個ListBoxes。 ListBox1具有可由用戶通過雙擊該項目或按下添加按鈕來轉移到ListBox2的項目列表。我現在想要做的是防止用戶在ListBox2中添加重複項。如果檢測到重複,則會有一條消息提示「已包含的項目」並結束該代碼。我猜這可以用包含?但我不知道該怎麼做。我有以下代碼:防止從列表框1添加項目到列表框2(VBA excel)
'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
謝謝山姆。您的代碼正在爲我工作。但是,我需要多選。那麼,現在,作爲一個臨時解決方案。我只需設置「添加」按鈕即可從列表框1中刪除項目,只要選擇添加到列表框2即可。這樣它將永遠不會再被選中。謝謝您的幫助。 – Yoko21
它應該很容易適應多選框的工作,您只需循環選定的值並使用相同的邏輯即可。我不明白,但如果你從Listbox1中刪除該項目,那麼爲什麼你需要重複檢查? – Sam
@ Yoko21我更新了代碼。它現在應該工作,如果ListBox1是多選。此外,該項目將被添加到listbox2時從ListBox1中刪除 – Sam