Excel VBA - Userform vlookup 错误处理
Excel VBA - Userform vlookup error handling
我有一个用户表单,其中包含一个组合框,其中填充了我的设置中的产品名称 sheet,我试图在用户从组合框中选择产品后显示带有产品描述的标签。
这工作得很好,除非用户选择了没有产品描述的产品,因此 vlookup 会 return 为空并导致用户表单出错。
我尝试了几种 If Error - 如果为空 - 描述为 0 - 描述为空语句,但 none 似乎有效,包括 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
这对我有用。
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
我有一个用户表单,其中包含一个组合框,其中填充了我的设置中的产品名称 sheet,我试图在用户从组合框中选择产品后显示带有产品描述的标签。
这工作得很好,除非用户选择了没有产品描述的产品,因此 vlookup 会 return 为空并导致用户表单出错。
我尝试了几种 If Error - 如果为空 - 描述为 0 - 描述为空语句,但 none 似乎有效,包括 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
这对我有用。
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