我有一个UserForm,它有一个ComboBox和一个TextBox。TextBox需要对ComboBox的值执行vlookup,但只有当该值存在于列表中时,否则,我不希望在TextBox中显示任何内容,这样用户就可以输入新的信息。
这就是我有多远:
Private Sub TextBox1_Enter()
If cbocolor.Value <> "" Then
Dim evalStr As String
Dim check As Variant
evalStr = WorksheetFunction.VLookup(cbocolor.Value, worksheets("CONTACTS").Range("allcontacts"), 2, False)
check = Evaluate(evalStr)
If VarType(check) = vbError Then
TextBox1.Value = "Enter new info"
Else
var1 = WorksheetFunction.VLookup(cbocolor.Value, Worksheets("CONTACTS").Range("allcontacts"), 2, False)
TextBox1.Value = var1
End If发布于 2015-10-20 21:32:07
你应该可以用一句话来做这一切:
Private Sub TextBox1_Enter()
If cbocolor.value <> "" Then
TextBox1.value = WorksheetFunction.IfError(Application.VLookup(cbocolor.value, _
Worksheets("CONTACTS").Range("allcontacts"), 2, False), "Enter New Info")
End If
End Subhttps://stackoverflow.com/questions/33247110
复制相似问题