Я создаю пользовательскую форму (riskcodefiter
), где пользователь может перемещать значения из одного списка в другой.Первое поле списка allriskcodes
содержит много значений (заполняемых из диапазона на другом листе), а второе поле списка chosenriskcodes
будет содержать значения из allriskcodes
, которые пользователь хочет использовать в качестве фильтра.Пользовательская форма включает в себя Btn_addallcodes
, Btn_removeallcodes
, Btn_addcodes
, Btn_removecodes
- которые говорят сами за себя.
Проблема: если в списке chosenriskcodes
несколько значений и пользователь хочет удалить последнее значение в поле, он очистит весь список chosenriskcodes
.Это также относится и к моей Btn_addcodes
.Любой совет?
Это код, который я имею для моего Btn_removecodes
Private Sub BTN_removecodes_Click()
Dim iCtr As Long
For iCtr = 0 To Me.chosenriskcodes.ListCount - 1
If Me.chosenriskcodes.Selected(iCtr) = True Then
Me.allriskcodes.AddItem Me.chosenriskcodes.List(iCtr)
End If
Next iCtr
For iCtr = Me.chosenriskcodes.ListCount - 1 To 0 Step -1
If Me.chosenriskcodes.Selected(iCtr) = True Then
Me.chosenriskcodes.RemoveItem iCtr
End If
Next iCtr
End Sub
Это код, который я имею для моего Btn_addcodes
Private Sub BTN_addcodes_Click()
Dim iCtr As Long
For iCtr = 0 To Me.allriskcodes.ListCount - 1
If Me.allriskcodes.Selected(iCtr) = True Then
Me.chosenriskcodes.AddItem Me.allriskcodes.List(iCtr)
End If
Next iCtr
For iCtr = Me.allriskcodes.ListCount - 1 To 0 Step -1
If Me.allriskcodes.Selected(iCtr) = True Then
Me.allriskcodes.RemoveItem iCtr
End If
Next iCtr
End Sub
Кнопка отлично работает для всех других значений в списках, кроме последнего значения.Есть идеи?