【问题标题】:Excel VBA - Userform vlookup error handlingExcel VBA - 用户窗体 vlookup 错误处理
【发布时间】:2017-02-04 18:48:53
【问题描述】:

我有一个用户表单,其中的组合框填充了我的设置表中的产品名称,并且一旦用户从组合框中选择了产品,我就会尝试显示带有产品描述的标签。

这很好用,除非用户选择了没有产品描述的产品,因此 vlookup 将返回空并导致用户表单出错。

我尝试了几个 If Error - if is empty - Description is 0 - Description is empty statements,但似乎没有一个有效,包括 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

【问题讨论】:

  • @Nathan_Sav 尝试但仍然错误`如果描述没有那么`

标签: excel vba userform


【解决方案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

【讨论】:

  • 别担心,顺便说一句,如果您要检索多个值,最好使用 MATCH 的组合来查找行号,然后从行号中引用工作表。 1 次退货应该没问题。
  • 我正在为其余的代码做同样的事情,但是对于这个特定的用户表单来说,这将是矫枉过正,因为我只有一个值要查找。但很高兴知道我对其他表格做了正确的事情;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多