VBA 中的 VLOOKUP 函数
我们将通过示例介绍如何在 VBA 中使用 VLOOKUP
。
在 VBA 中使用 VLOOKUP()
函数
在 Excel 中,我们可以使用 VLOOKUP()
函数在数组中查找一个值并从另一列返回其可比较的值。我们要查看的值应该存在于第一列中。
我们还必须指出我们的要求,无论我们想要完美匹配还是最接近价值的匹配。我们可以使用工作表访问 VLOOKUP
。
语法:
# VBA
VLOOKUP(search_value,range,returnIndex_num,[lookupRange])
search_value
表示我们要搜索的值。range
是我们正在处理的范围,returnIndex_num
是我们想要返回值的列号,lookupRange
表示匹配是完美的还是接近的。
lookupRange
有两种可能性,可以是 true
或 false
,或 0
或 1
。
代码:
#VBA
Application.WorksheetFunction.vlookup(search_value,range,returnIndex_num,[lookupRange])
让我们举个例子,并尝试从中找到一些数据。我们的数据包含自由职业者的 ID
、姓名
和提交的项目
。
如果我们要搜索由具有 ID 4
的自由职业者完成的项目,我们必须使用 VBA 中的 vlookup()
函数找到它们。
首先,我们通过按 ALT + F11 键打开 VBA 编辑器,然后从 Insert > Module
创建一个新模块。接下来,我们创建一个新的子 lookForProj()
并为 freelancer_id
和 projects completed
分配变量。
我们还将设置我们想要找到自由职业者的范围。
代码:
#VBA
Sub lookForProj()
Dim freelancer_id As Long
Dim projects As Long
freelancer_id = 4
Set newRange = Range("A2:C6")
projects = Application.WorksheetFunction.VLookup(freelancer_id, newRange, 3, False)
MsgBox "Freelancer with ID: " & freelancer_id & " completed " & projects & " projects"
End Sub
输出:
让我们再举一个例子。考虑包含产品名称及其销售额的数据,并假设我们已将这些数据添加到列 B
和 C
中。
我们想通过使用 vlookup()
函数来搜索产品的销售数量。首先,让我们从 Insert > Module
创建一个新模块并创建一个新子 lookForSales()
。
我们将为 product_id
和 sales
分配变量,并设置我们想要找到自由职业者的范围。
代码:
# VBA
Sub lookForSales()
Dim product_id As Long
Dim sales As Long
product_id = 2
Set newRange = Range("A2:C6")
sales = Application.WorksheetFunction.VLookup(product_id, newRange, 3, False)
MsgBox "Product with ID: " & product_id & " sold " & sales & " times"
End Sub
输出: