2016-09-27 160 views
0

我有一個用戶窗體,用我的設置表中的產品名稱填充了組合框,並且我試圖在用戶從組合框中選擇產品時顯示帶有產品描述的標籤。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

回答

1

這對我的作品。

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