Excel VBA 匹配范围内的值(3个例子)

  • Share This
Hugh West

在与 微软Excel 有时我们需要在一个范围内找到匹配值。 我们可以用excel函数轻松做到这一点。 在VBA中,我们可以使用一些函数,但它们都不等于 匹配 在这篇文章中,我们将学习如何在一个范围内用以下方法匹配一个值 Excel VBA .

下载实践工作手册

你可以下载工作手册,用它们进行练习。

VBA在范围内匹配值.xlsm

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中匹配数值。 希望这能帮助你!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.