Задание сопоставлений записей в поле со спискомSet Entry Matching in a Combo Box

В следующем примере используются свойства MatchFound и MatchRequired для демонстрации дополнительных символов, подходящих для поля ComboBox.The following example uses the MatchFound and MatchRequired properties to demonstrate additional character matching for ComboBox. Проверка совпадения выполняется в событии Change .The matching verification occurs in the Change event.

В этом примере пользователь указывает, должна ли текстовая часть ComboBox соответствовать одному из указанных элементов в ComboBox.In this example, the user specifies whether the text portion of a ComboBox must match one of the listed items in the ComboBox. Пользователь может указать, требуется ли совпадение, с помощью флажка , а затем введите его в поле ComboBox , чтобы указать элемент из списка.The user can specify whether matching is required by using a CheckBox and then type into the ComboBox to specify an item from its list.

Чтобы использовать этот пример, скопируйте пример кода в редактор скриптов формы.To use this example, copy this sample code to the Script Editor of a form. Чтобы запустить код, необходимо открыть форму, чтобы активировать событие Open .To run the code you need to open the form so the Open event will activate. Убедитесь, что эта форма содержит:Make sure that the form contains:

  • Элемент ComboBox с именем ComboBox1, привязанный к полю Subject.A ComboBox named ComboBox1 that is bound to the Subject field.

  • Элемент CheckBox с именем CheckBox1.A CheckBox named CheckBox1.

Sub CheckBox1_Click() 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 Set CheckBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("CheckBox1") 
 
 If CheckBox1.Value = True Then 
 ComboBox1.MatchRequired = True 
 MsgBox "To move the focus from the ComboBox, you must match an entry in the list or press ESC." 
 Else 
 ComboBox1.MatchRequired = False 
 MsgBox " To move the focus from the ComboBox, just tab to or click another control. Matching is optional." 
 End If 
End Sub 
 
Sub Item_PropertyChange(byval pname) 
 if pname = "Subject" then 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 If ComboBox1.MatchRequired = True Then 
 'MSForms handles this case automatically 
 Else 
 If ComboBox1.MatchFound = True Then 
 MsgBox "Match Found; matching optional." 
 Else 
 MsgBox "Match not Found; matching optional." 
 End If 
 End If 
 end if 
End Sub 
 
Sub Item_Open() 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 Set CheckBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("CheckBox1") 
 
 For i = 1 To 9 
 ComboBox1.AddItem "Choice " & i 
 Next 
 ComboBox1.AddItem "Chocoholic" 
 
 CheckBox1.Caption = "MatchRequired" 
 CheckBox1.Value = True 
End Sub

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.