📅  最后修改于: 2021-01-11 14:27:24             🧑  作者: Mango
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)
步骤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,然后单击“确定”按钮。
单击确定按钮后,我们将在下面的屏幕截图中显示输出。