Table of contents
在搜索或看到一些特定的值或元素方面,MS Excel提供了各种功能。 VLOOKUP 是其中之一。 它可以帮助我们从任何数据集中搜索所需的数据。 它允许我们提到是寻找精确匹配还是近似匹配。 除了在Excel公式中使用这个函数,我们也可以在VBA代码中使用它。 在这篇文章中,我们将看到如何使用这个 VLOOKUP函数 在VBA中。
下载实践工作手册
VBA中的VLOOKUP.xlsm在VBA中使用VLOOKUP的4种方法
1.在VBA中使用VLOOKUP手动搜索数据
我们有一个雇员信息数据集,包括他们的ID、姓名、部门、入职日期和工资。 现在我们的任务是用他们的ID手动查找雇员的信息。 在这一部分,我们将只用他们的ID查找雇员的工资。
步骤1。 选择 视觉基础 根据 开发商 选项卡(快捷键 Alt + F11 )
第2步。 然后会有一个窗口来。 选择 模块 选项下的 插入 按钮
第3步。 现在,在VBA控制台写下以下代码,并按下 运行 按钮(快捷键 F5 )
代码。
Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID: " & Employee_id & " Salary " & "$" & salary End Sub
第4步。 现在会有一个信息弹出并显示信息
阅读更多。 用VLOOKUP搜索Excel中的文本(4种简单方法)
2.在VBA中使用VLOOKUP搜索有输入的数据
现在让我们看看如何用输入法从表或范围中搜索或提取数据。 如图所示,我们将从雇员信息表中找出输入的id的名称。
步骤1。 首先按照同样的步骤1到步骤2打开VBA控制台
第2步。 现在在VBA窗口中输入以下代码
代码。
Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub
第3步。 现在在单元格中输入任何ID D13 并运行该代码
第4步。 ǞǞǞ 命名 将会显示与ID相对应的保存的数据
阅读更多。 Excel中使用VLOOKUP的10种最佳做法
类似读物
- VLOOKUP不工作(8个原因& 解决方案)
- INDEX MATCH与VLOOKUP功能的对比(9个例子)
- 在Excel中使用多条件的VLOOKUP(6种方法+替代方法)
- Excel VLOOKUP查找列中最后一个值(含替代方法)
- Excel VLOOKUP垂直返回多个数值
3.在VBA中使用VLOOKUP查找输入框的信息
让我们看看如何使用VBA的输入框来搜索数据。 为了搜索,我们需要使用 VLOOKUP 同样,数据集也是一样的,但搜索方法不同。 在这里,我们的任务是通过输入ID和部门来找出雇员的工资。
步骤1。 首先按照相同的步骤1到步骤2打开VBA窗口
第2步。 现在在VBA控制台输入以下代码,并 运行 它
代码。
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D") .Value Next i End Sub
第3步。 这将打印一个组合字符串,第一列是ID和部门。
第4步。 现在再次进入VBA控制台,输入完整的代码并再次运行
代码。
Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("输入员工的ID") department = InputBox("输入员工的部门") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("The salary of employee is $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Employee data not present") End If End Sub
代码解释
- 首先。 Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D") .Value 使用这段代码,我们将ID和部门的串联值存储到A列。
- lookup_val = ID & "_" & department 这是在定义查询值将是ID和部门。
- salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) 在这里,我们将匹配的雇员的工资存储到一个名为 薪资
- 如果Err.Number = 1004,那么 这是条件检查,我们要检查错误号码是否为1004。 在Excel VBA中,1004代码意味着搜索到的值没有被发现、删除或移除。
第5步。 现在会有一个像这个图片一样的弹出窗口。 输入 身份证 和 部门 依次
第6步。 在按下 好的 按钮,最终输出结果将被显示出来
第7步。 如果你输入错误的 身份证 或 部门。 它将显示以下信息
阅读更多。 如何在Excel中用多个条件进行VLOOKUP(2种方法)
4.在VBA中使用VLOOKUP,用按钮查找信息
现在我们将看到如何通过一个按钮的帮助而不是手动运行代码来查找信息。 同样,数据集将与上面一样。
步骤1。 首先选择 插入 的选项。 开发商 标签
第2步。 然后选择 钮扣 选项,从 插入
第3步。 按照你的要求放置按钮,并给出按钮的名称
第4步。 现在,右键单击按钮并选择 指派宏程序
第5步。 现在创建一个新的宏,并命名为 vlookup_function_4
第6步。 在VBA控制台写下以下代码,然后 运行 准则
代码。
Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) Rng = FinalResult End Sub
第6步。 现在输入任何ID并按下按钮
阅读更多。 使用VBA的VLOOKUP从Excel的另一个工作表中查找数值
需要记住的事情
常见错误 | 当他们显示 |
---|---|
1004错误 | 当VBA vlookup代码找不到lookup_value时,会出现1004的错误。 |
VBA中找不到VLOOKUP函数 | Vlookup函数可以在Excel VBA中通过使用WorksheetFunction调用。 |
错误处理 | vlookup函数中的错误可以用一个 得到了 语句,如果它返回一个错误。 |
总结
这些是使用的一些方法。 VLOOKUP 我已经展示了所有的方法和它们各自的例子,但还可以有许多其他的迭代。 我也讨论了所使用的函数的基本原理。 如果你有任何其他的实现方法,那么请随时与我们分享它。