Table of contents
在与 微软Excel 有时我们需要在一个范围内找到匹配值。 我们可以用excel函数轻松做到这一点。 在VBA中,我们可以使用一些函数,但它们都不等于 匹配 在这篇文章中,我们将学习如何在一个范围内用以下方法匹配一个值 Excel VBA .
下载实践工作手册
你可以下载工作手册,用它们进行练习。
Excel VBA匹配功能介绍
ǞǞǞ 匹配功能 在Excel VBA中是一个有用的构建的查找函数,像 VLOOKUP , HLOOKUP ,以及 索引 函数,返回在数组或数据库中获得的查找值的相同或可比的匹配位置。 该函数是程序使用的工作表函数。 因为是工作表函数,所以匹配函数的参数与工作表函数的参数相似。
Excel VBA匹配范围内数值的3个例子
1.用Excel中的VBA匹配函数匹配范围内的值
要使用 Excel的VBA匹配功能 为了找到一个范围内的匹配值,我们将使用以下数据集。 该数据集在列中有一些学生的名字 C 栏目中,他们对某一特定科目的分数 D 栏中的每个学生的序号。 B 现在,假设我们想找到单元格中的匹配位置 G5 的一个特定标记,而我们要匹配的标记是在单元格 F5 .
让我们来演示一下使用excel VBA Match函数在一个范围内寻找匹配值的程序 .
步骤。
- 首先,去到 开发商 选项卡。
- 第二,点击 视觉基础 以打开 Visual Basic编辑器 ,我们在这里写代码。 或者,按 Alt + 11 以打开 Visual Basic编辑器 .
- 另一种打开方式 Visual Basic编辑器 只是为了 右键点击 在工作表上点击 查看代码 .
- 这将打开 Visual Basic编辑器 现在,把代码写在那里。
VBA代码。
Sub example1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub
- 之后,要运行代码,按 F5 键盘上的键或点击 擦擦子 按钮。
- 最后,你可以看到,匹配的位置是在 5 .
🔎 VBA代码是如何工作的?
子 example1_match()
: 这意味着我们通过给出宏的名称来定义一个子程序。Range("G5").Value
: 我们希望将输出存储在单元格 G5 .工作表函数
: 通过使用这段代码,我们将能够访问VBA函数。
Match(Range("F5").Value, Range("D5:D10"), 0)
: 在这里,我们使用 匹配功能 由于我们要从单元格中取值,所以在VBA中 F5 并找出范围内的位置 D5:D10 .结束子程序
: 这意味着我们结束了这个程序。
阅读更多:Excel VBA在列中匹配字符串(5个例子)。
2.使用Excel VBA来匹配另一个工作表的值
我们可以从另一个工作表中找到范围内的匹配值,使用 VBA的Match函数 在 ǞǞǞ 假设我们有一个数据集,在一个名为""的工作表中。 数据 ",我们想让结果出现在工作表的名称中" 结果 "。 而我们使用的是同一个数据集。 现在,让我们按照步骤来做。
步骤。
- 在开始时,与前面的例子一样,以同样的方式,到 开发商 选项卡上。
- 然后,点击 愿景 或按 Alt + F11 以打开 Visual Basic编辑器 .
- 而不是这样,要打开 Visual Basic编辑器 ,只需在工作表上点击右键并选择 查看代码 .
- 现在,写下VBA代码。
VBA代码。
Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub
- 接下来,通过按 F5 键或点击 运行子 按钮。
- 而且,结果是在""中找到的。 结果 "张。
阅读更多。 如何在Excel中匹配两个工作表的数据
类似读物
- 在Excel中用VLOOKUP对所有的匹配进行求和(3种简单方法)
- 如何在Excel中查找区分大小写的匹配(6个公式)
- 如何在Excel中匹配拼写不同的名字(8种方法)
3.Excel VBA 循环获取范围内的匹配值
假设我们希望有多个标记来匹配数值,我们将使用VBA循环来实现。 我们使用与之前相同的数据集。 现在,我们希望在列中的匹配位置 G ,而我们想要找到匹配的标记是在第 F 让我们看看下面的步骤。
步骤。
- 首先,从功能区中,进入 开发商 标签。
- 其次,要打开 Visual Basic编辑器 ,点击 视觉基础 或按 Alt + F11 .
- 或者,只需在工作表上点击右键,选择 查看代码 .
- 这将打开 Visual Basic编辑器 .
- 现在,在那里输入代码。
VBA代码。
Sub example3_match() Dim i As Integer For i = 5 To 8 Cells(i, 7).Value = WorksheetFunction.Match(Cells(i, 6) .Value, Range("D5:D10"), 0) Next i End Sub
- 之后,按 F5 键或点击 运行子 按钮将运行该代码。
- 而且,你将能够在列中看到结果 G .
🔎 VBA代码是如何工作的?
对于i = 5 To 8
: 这意味着我们希望循环运行从行开始 5 并以行结束 8 .Cells(i, 7).Value
: 这将保存每一行的结果位置的值,从 5 至 8 列中的行数 G 这是列数字 7 .Match(Cells(i, 6).Value, Range("D5:D10"), 0)
: 细胞可以通过以下方式进行匹配 匹配 函数(i, 6).值搜索在行中发现的每个Lookup值 5 通过 8 的。 第六届 列。 然后在数组中搜索 D5:D10 在有数据的EXCEL表格上。
阅读更多。 Excel查找两列中的匹配值
应注意的事项
- 如果缺少或没有指定匹配类型,则假定其为 1 .
- 如果没有检测到匹配,相关的excel字段将是空白。
- 查询值可能是一个数字、字符或逻辑数据,或一个单元格对数量、文本或逻辑意义的引用。
总结
上述方法将帮助你在Excel VBA中匹配数值。 希望这能帮助你!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!