Итак, я новичок в области форм кодирования VBA, и мне кажется, что я немного борюсь с этим.
Что я сделал, так это следовал этому уроку:
https://www.excel -easy.com / vba / examples / множественный список-box-selections.html
И я адаптировал его так, чтобы он соответствовал моим потребностям, но теперь у меняили две проблемы, которые я не понимаю, как я могу решить.
Код в учебнике добавляет два поля списка в форму, а затем кнопка добавления копирует элементы из первого списка во второй, а кнопка удаления удаляетэлементы из второго списка.
Проблема в том, что вы можете добавить определенный элемент более одного раза, и, учитывая, что я хотел бы использовать значения во втором списке, это проблема, поскольку мне нужны только уникальные значения.
Приведенный ниже код - это то, что я до сих пор придумал, но я получаю ошибку:
Private Sub btn_Add_Filter_Click()
For i = 0 To lbx_Filters_List.ListCount - 1
If lbx_Filters_List.Selected(i) = True Then
For X = 0 To lbx_Filters.ListCount
If Not IsError(lbx_Filters.List(X)) Then
mVal = 0
If lbx_Filters.List(X) <> "" And lbx_Filters.List(X) = lbx_Filters_List.List(i) Then
myVal = 1
End If
End If
If myVal = 0 Then
lbx_Filters.AddItem _
lbx_Filters_List.List(i)
End If
Next X
End If
Next i
End Sub
Ошибка возникает во второй раз, когда я пытаюсь добавить тот же элемент изпервый список и что происходит,второй цикл for будет зациклен один раз, и во втором цикле он выдаст ошибку в этой строке:
If Not IsError(lbx_Filters.List(X)) Then
Ошибка:
Не удалось получить свойство списка.Неверный индекс массива свойств