Excel VBA - Userform vlookup错误处理

问题描述:

我有一个用户窗体,用我的设置表中的产品名称填充了组合框,并且我试图在用户从组合框中选择产品时显示带有产品描述的标签。Excel VBA - Userform vlookup错误处理

这很有效,除非用户选择没有产品说明的产品,因此vlookup将返回空白并导致用户表单发生错误。

我试了几次If Error - if is empty - Description is 0 - Description is empty statements,but none does not work,including OnError GoTo Errorhandler。我在这里做错了什么?

Private Sub Problem_List_Change() 

Description = Application.WorksheetFunction.VLookup(Problem_List.Text, Worksheets("Settings").Range("l3:o1000"), 4, False) 

    If IsError(Description) Then 
     Desc.Caption = "" 
    Else 
     Desc.Caption = Description 
    End If 

End Sub 

感谢, A2K

+0

@Nathan_Sav尝试,但仍然出错'如果说明是没有Then' – Armitage2k

这对我的作品。

Sub x() 

Dim r As Variant 

On Error Resume Next 
r = Application.WorksheetFunction.VLookup(5, Range("a1:b4"), 2, False) 

If Not IsEmpty(r) Then 
    Debug.Print "Found" 
Else 
    Debug.Print "Not Found" 
End If 

End Sub 
+0

作品晶圆厂,感谢 – Armitage2k

+0

不用担心,在一个侧面说明,如果你是检索多个值,它可能是一个主意,用组合MATCH找到你的行号,然后从行号引用表格。 1回报应该没问题。 –

+0

我正在为代码的其余部分做这件事,但只是对于这个特定的用户表单来说,这将是矫枉过正的,因为我只有一个值来查找。但很高兴知道我用其他形式做了正确的事情;) – Armitage2k