2016-09-27 22 views
0

私はコンボボックスに製品名を入力したユーザーフォームを持っています。ユーザーがコンボボックスから製品を選択すると、製品の説明付きのラベルを表示しようとしています。Excel VBA - Userform vlookupエラー処理

これは、ユーザーが製品の説明がない製品を選択しない限り、うまくいきます。したがって、vlookupは空を返し、ユーザーフォームでエラーが発生します。

私はいくつか試してみましたIf - 空の場合 - 説明は0です - 説明は空文ですが、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 

おかげで、

+0

@Nathan_Savを試みたが、説明は、サイドノートにThen' – Armitage2k

答えて

1

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 
+0

作品FAB、感謝 – Armitage2k

+0

心配はありません、何もない場合は、複数の値を取得するためであれば、まだ、 'エラー、組み合わせを使用する考えかもしれMATCHの行番号を見つけて行番号からシートを参照してください。 1回の返品は問題ありません。 –

+0

私はコードの残りの部分を正確に行っていますが、この特定のユーザーフォームの場合は、参照する値が1つしかないので、残念です。しかし、私は他のフォームと正しいことを知ってうれしい;) – Armitage2k

関連する問題