用VBA实现VLOOKUP功能?
发布网友
发布时间:2023-05-02 11:46
我来回答
共2个回答
热心网友
时间:2023-05-25 15:22
VLOOKUP是Excel中的函数,可以在VBA中使用WorksheetFunction对象来调用它。以下是一个示例代码,它使用VLOOKUP函数来查找一个值,并返回其在另一个区域中对应的值:
vbnet
Copy code
Function MyVlookup(lookup_value As Variant, table_array As Range, col_index As Long, Optional range_lookup As Variant) As Variant
MyVlookup = WorksheetFunction.VLookup(lookup_value, table_array, col_index, range_lookup)
End Function
在这个代码中,lookup_value是要查找的值,table_array是要查找的表格区域,col_index是要返回值的列数,range_lookup是可选的参数,指定查找方式。该函数返回一个Variant类型的值。
使用这个函数的示例代码如下:
vbnet
Copy code
Sub test_vlookup()
Dim lookup_value As Variant
Dim table_array As Range
Dim col_index As Long
Dim result As Variant
' 设置要查找的值
lookup_value = "B"
' 设置要查找的表格区域
Set table_array = Range("A1:B4")
' 设置要返回值的列数
col_index = 2
' 调用MyVlookup函数进行查找
result = MyVlookup(lookup_value, table_array, col_index, False)
' 输出结果
MsgBox result
End Sub
在这个代码中,我们首先设置要查找的值、要查找的表格区域和要返回值的列数,然后调用MyVlookup函数进行查找,并将结果输出到一个消息框中追问代码运行不成功
热心网友
时间:2023-05-25 15:23
以下是一个实现VLOOKUP功能的VBA代码,它会在SHEET1中的E5:E30区域寻找输入的商品名称,并将对应的价格和编号填充到TEXTBOX2和TEXTBOX3中。
Private Sub TextBox1_Change()
Dim proctName As String
Dim proctPrice As Variant
Dim proctID As Variant
Dim lookupRange As Range
'获取输入的商品名称
proctName = TextBox1.Text
'设置查找范围
Set lookupRange = Sheets("SHEET3").Range("H5:J30")
'使用VLOOKUP函数查找商品价格和编号
proctPrice = Application.VLookup(proctName, lookupRange, 3, False)
proctID = Application.VLookup(proctName, lookupRange, 2, False)
'将价格和编号填充到TEXTBOX2和TEXTBOX3中
TextBox2.Text = proctPrice
TextBox3.Text = proctID
End Sub
请将代码复制粘贴到窗体的代码编辑器中,并将TEXTBOX1,TEXTBOX2和TEXTBOX3的名称替换为你的窗体中实际使用的控件名称。同时请确保SHEET1,SHEET2和SHEET3的名称正确,并且数据位置与代码中的位置相匹配。追问数据可以匹配到,但是要在TEXTBOX中执行按键操作才能显示,没法自动显示,比如要随便往框里按个键才会显示,和我之前做的那个一样不自动刷新数值