IF 语句 - 错误 1004 [Vlookup 文件返回零]



我正在使用来自 excel 列 (2nos( 的数据创建一个产品数据库。 1 列包含产品描述和另一个价格。

一个组合框填充了产品数据(在您键入时搜索(,单击按钮时,文本框会显示价格。

所以现在的问题是,有时可能有些产品不在数据库中,当单击按钮时,程序结束。 尝试使用 IF 函数四处走动。 没有按预期工作。

我是这方面的菜鸟。请帮忙。

Dim ProductNa As Range
Dim ProducPr As Object
Private Sub LowPriceBtn_Click()
Set ProductNa = Worksheets("Pdata").Range("A2:B7400")
ProducPr = Application.WorksheetFunction.VLookup(Me.ProBox1.Value, ProductNa, 2, False)
If ProducPr <> 0 Then
proRate1.Text = ProducPr
Else
proRate1.Text = "Nothing available in database"
End If
End Sub

上面的代码不起作用。

这是曾经工作过的那个:

Private Sub LowPriceBtn_Click()
Set ProductNa = Worksheets("Pdata").Range("A2:B7400")
proRate1.Text = Application.WorksheetFunction.VLookup(Me.ProBox1.Value, ProductNa, 2, False)

这确实有效。但是当Vlookup不返回任何值时,程序崩溃。

PS:proRate1-文本框名称,probox1-组合框。

我有一个函数可以激发你开发代码的灵感。

1. Create a new module 
2. Paste code bellow
Function MyVLOOKUP(p_value_search As Range, p_matrix As Range, p_col_return As Integer)
'= MyVLOOKUP(E4;Banks!$B$2:$Q$10563;9)
v_value_search = p_value_search.Value
For x = 1 To p_matrix.Rows.Count
If v_value_search = p_matrix.Cells(x, 1).Value Then
v_resp = p_matrix.Cells(x, p_col_return).Value
Exit For
End If
Next
MyVLOOKUP = v_resp
End Function
3. Go back to the worksheet and insert into a cell the code equal to 
the VLOOKUP function.  example: = MyVLOOKUP(E4;Banks!$B$2:$Q$10563;9)

当找不到值时,此函数不会返回零或 #N/D。 我希望对您有所帮助。

最新更新