我正在创建一个包含excel Column(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-组合框。
答案 0 :(得分:0)
我有一个可以激发您开发代码的功能。
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。 希望对您有所帮助。