📜  VBA VLookup

📅  最后修改于: 2021-01-11 14:27:24             🧑  作者: Mango

VBA VLookup

VLookup是excel中的工作表函数,但我们也可以在VBA中使用它。 VLookup的功能类似于VBA和工作表中的功能。

在Excel中,VLookup函数用于搜索数组中的值,并从另一列返回其对应的值。搜索值应出现在第一列中。

VLookup工作表功能可以在VBA编码中使用。该函数只能通过使用工作表进行调用,而不能在VBA中构建。

句法

VLookup函数在Excel VBA中遵循以下语法:

Application.VLookup(lookup_value, table_array,col_index_num, [range_lookup]) 

要么

Application.WorksheetFunction.VLookup(lookup_value, table_array, column_index, range_lookup)
  • Lookup_value是我们要搜索的值。
  • Table_array是我们正在搜索的范围。
  • Col_index_num是返回值的列号。
  • Range_lookup告知匹配是精确匹配还是近似匹配。它可以是0/1或true / false,请使用false查找确切的匹配项。使用true假定第一列按数字或字母顺序排序。

如何在Excel VBA中使用VLookup

步骤1:单击“开发人员”选项卡,然后选择“ Visual Basic”选项。

第2步:点击插入按钮并添加一个模块

步骤3:然后编写VLookup程序。

步骤4:现在,使用“运行”按钮运行代码。

让我们借助以下一些示例,函数:

例子

假设我们有关于雇员月薪的数据。下表使用对话框显示员工的薪水。

在下表中,数据在B和C列中给出。A单元中的员工ID,B单元中的员工名称以及C单元中返回的员工薪水。

现在编写VLookup代码。并定义数据存在的范围,即列A,B和C。

将员工名称定义为单元格B2,将薪水定义为单元格C11。现在,使用WorksheetFunction调用VLookup函数,并将其放入Sal中

在上面的示例中,我们使用了变量“ E_name ”来存储要获取其薪水的员工姓名。将员工名称命名为VLookup,并返回该员工的薪水。

现在,使用“运行”按钮执行代码。我们将获得以下屏幕快照中显示的输出。

示例2:在这里,我们在上表中添加一个新列,即Department。

现在编写VLookup代码。并定义存在数据的范围,即列A,B,C和D。

使用基于员工ID的WorksheetFunction编写代码以调用VLookup函数。

Sub EMP_DETAILS()

Dim E_id As Long

E_id = InputBox("Enter the Employee ID :")

Det = "Employee ID : " & Application.WorksheetFunction.VLookup(E_id, Sheet1.Range("A2:D11"), 1, False)

Det = Det & vbNewLine & "Employee Name : " & Application.WorksheetFunction.VLookup(E_id, Sheet1.Range("A2:D11"), 2, False)

Det = Det & vbNewLine & "Employee Department : " & Application.WorksheetFunction.VLookup(E_id, Sheet1.Range("A2:D11"), 3, False)

Det = Det & vbNewLine & "Monthly Salary : " & Application.WorksheetFunction.VLookup(E_id, Sheet1.Range("A2:D11"), 4, False)

MsgBox "Employee Details : " & vbNewLine & Det
Exit Sub

End Sub

在上面的示例中,我们要求用户输入员工ID,然后在单个消息框中使用多个VLookup语句和所有详细信息。

使用“运行”按钮运行上述代码,输入要输入的员工ID,然后单击“确定”按钮。

单击确定按钮后,我们将在下面的屏幕截图中显示输出。