VLookUp ComboBox输入更新TextBox值

时间:2016-06-21 14:41:01

标签: vba excel-vba combobox vlookup userform

我的问题是从UserForm中的下拉列表(ComboBox)中选择一个国家/地区,我的文本框没有显示任何输出。什么都没发生。文本框应该在ComboBox中选择的任何值上执行VLookUp。 ComboBox(名称)是"国家"。

其中一个TextBox的代码:

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)

1 个答案:

答案 0 :(得分: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