2016-06-21 4 views
0

Моя проблема заключается в выборе страны из раскрывающегося списка (ComboBox) в моем UserForm, мои текстовые поля не показывают никакого вывода. Ничего не произошло. Текстовые поля должны выполнять VLookUp для любого значения, выбранного в ComboBox. ComboBox (Name) - «Страна».Вход VLookUp ComboBox для обновления значений TextBox

Код для одного из TextBoxes:

Private Sub TextBox2_Change() 
Dim myRange As Range 
Set myRange = Worksheets("All Countries Validation").Range("A:R") 
TextBox2.Value = Application.WorksheetFunction.VLookup(Country.Value, myRange, 2, False) 
+0

Возможно, потребуется сделать некоторые отладки, как то, что это значение страны? Попробуйте Debug.Print (Application.WorksheetFunction.VLookup (Country.Value, myRange, 2, False)). Также зачем определять диапазон A: R, когда вам нужен только столбец 2? Наконец, попробуйте Application.Vlookup без .WorksheetFunction, он даст другой класс сообщений об ошибках, которые могут помочь. – Absinthe

+0

Так что я пробовал делать отладки и ничего не происходило. Я также создал кнопку для отображения окна сообщения «Country.value», но ничего не произошло, когда я нажал на нее. Если я выберу страну и нажимаю клавишу Enter на моей клавиатуре, а внутри ComboBox я получаю сообщение об ошибке Automation, вызываемый объект отключился от своих клиентов – Davey

+0

Idk, если это имеет значение, но это происходит внутри UserForm с вкладками. Это вторая вкладка в UserForm – Davey

ответ

2

вы должны использовать Country_Change() обработчик событий вместо TextBox2_Change() один

Option Explicit 

Private Sub Country_Change() 
    Dim myRange As Range, f As Range 

    Set myRange = Worksheets("All Countries Validation").Range("A:A") 

    Set f = myRange.Find(What:=Country.Value, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False) '<--| try and find combobox selected value 
    If f Is Nothing Then '<--| if not found ... 
     TextBox2.Value = "" '<--| ... then clear textbox 
    Else'<--| ... otherwise... 
     TextBox2.Value = f.Offset(, 1) '<--| ... fill it with proper value 
    End If 
End Sub 
+1

Doh, бит явный>. <+1 для этого – Absinthe

+0

Это сработало отлично! Я просто видел много мест в Интернете, делаю это методом, который я пробовал, но это было намного более эффективно, и это фактически работало га – Davey

+0

рад, что это сработало. ура – user3598756

Смежные вопросы