проверьте и сравните значение, введенное в поле со списком - PullRequest
0 голосов
/ 31 мая 2018

Я использую VBA в Excel 2010. Мне было интересно, есть ли простой способ проверить, соответствует ли значение, введенное в выпадающем списке, уже заполненному значению в выпадающем списке.

Private Sub cmbMonth_Enter() With Me.cmbMonth .AddItem "January" .AddItem "February" .AddItem "March" .AddItem "April" .AddItem "May" .AddItem "June" .AddItem "July" .AddItem "August" .AddItem "September" .AddItem "October" .AddItem "November" .AddItem "December" End With End Sub

КакВы можете видеть, что этот комбинированный список заполнен значениями названий месяцев.Что я хотел бы сделать, так это если пользователь вручную вводит месяц и пишет его с ошибкой, при выходе проверяет, совпадает ли введенное значение с тем, что находится в поле со списком, если не отображается окно сообщения.

Спасибо.

1 Ответ

0 голосов
/ 31 мая 2018

Это будет сделано и выделите запись с ошибкой и сбросьте фокус на поле со списком:

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim val As Variant
    With Me.ComboBox1 ' rename, if necessary
        val = .Value
        If .ListIndex = -1 And val <> vbNullString Then
            Cancel = True
            .SelStart = 0
            .SelLength = Len(val)
            Debug.Print "Illegal entry!" ' remove in production or replace with MsgBox
        End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...