Я не говорю по-испански, поэтому надеюсь, что я не пропустил важную информацию по вашему вопросу.
Свойство LimitToList
, которое вы уже нашли, не позволяет пользователю выбрать значение, котороенет уже в списке.Таким образом, всякий раз, когда пользователь редактирует или удаляет значение, чтобы результирующее значение отличалось от всех элементов списка, выбор не будет принят, и пользователь будет проинформирован об этом в окне сообщения.Итак, вы уже сделали, что пользователь не может выбрать недопустимое значение.
Однако это не мешает пользователю фактически попытаться ввести недопустимое значение.Он все еще может редактировать или удалять значение, которое он видит в данный момент.Это можно сделать, разрешив использование только предопределенных ключей, таких как отсутствующий указатель здесь
Private Sub ComboBoxName_KeyDown (KeyCode As Integer, Shift As Integer)
Выбрать Case KeyCode
Case vbKeyReturn, vbKeyTab, vbKeyUp, vbKeyDown KeyCode = KeyCode 'Принять эти ключи
Case Else KeyCode = 0' Блокировать все другие ключи End Select
End Sub