Excel VBA查找列中的值(6个合适的例子)

  • Share This
Hugh West

在MS Excel中,我们经常需要在数据集中搜索或查找数值。 这可能是在行或列中查找数据。 幸运的是,Excel提供了不同的函数和公式来完成这类任务。 在Excel VBA代码的帮助下,我们可以将这种搜索或查找数值的任务自动化。 在这篇文章中,我们将看到不同的方法来 在一列中查找值 在Excel VBA中。

下载实践工作手册

查找列中的值.xlsm

在Excel中用VBA查找列的值的6个例子

让我们有一个产品信息的数据集,其中有它们的 产品ID , 品牌 , 模型 , 单位价格 ,以及 订单编号 我们的任务是找出匹配的 订单编号 现在我们的任务是找出 订单编号 与之相关的 产品ID .

1.使用VBA查找功能查找列中的值

在第一个例子中,我们将使用 VBA中的查找功能 来寻找一个列中的值。

📌 步骤。

  • 转到工作表底部的工作表名称。
  • 按下鼠标的右键。
  • 选择 查看代码 列表中的选项。

  • 打开VBA窗口,然后选择 模块 插入 选择

  • 现在在VBA控制台写下以下代码
 Sub Find_Value() Dim ProductID As Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "没有找到匹配的数据!!" End If End Sub 

  • 现在在数据集中插入一个按钮。
  • 转到 开发商 标签。
  • 选择 钮扣 ( 形式控制 ) 从 插入 节。

  • 给予按钮的任何名称。 例如,我给它命名为 搜索 .

  • 将代码分配给这个按钮。
  • 选择按钮并按下鼠标的右键。
  • 选择 指派宏程序 从列表中。

  • 选择所需的宏,从 指派宏程序 窗口。
  • 然后,按 认可 .

  • 现在写下任何 产品ID 并点击 搜索 按钮。

我们可以看到没有匹配显示,因为这个产品编号不在列表上。

  • 换个说法 产品ID 并再次按下 搜索 按钮。

我们得到所给的订单号 产品ID .

阅读更多。 如何在Excel VBA中按行和列获取单元格值

2.用VBA从不同的工作表中查找数值

在本节中,我们将对不同的工作表做上述同样的事情。 让我们假设我们的产品信息是在 钣金 2 ,而搜索框是在 第3张 现在我们将编写VBA代码,这样我们就可以使用产品ID搜索订单ID了。 第3张 .

第2张。

第三张。

📌 步骤。

  • 遵循相同的步骤,从 第一步 第2步 从前面的方法中,打开VBA控制台
  • 现在在VBA控制台写下以下代码
 Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5) .Value = Sheet2.Cells(rowwnumber, 6) .Value End Sub 

  • 现在再次插入一个像前一个的按钮。
  • 然后将宏代码分配给按钮。

  • 输入任何 产品ID 并点击 执行 按钮

阅读更多。 在Excel中查询列的值并返回另一列的值

3.寻找并标记列中的值

让我们看看如何通过标记来找出某一列的值。 为此,让我们假设上面的数据集也有一个额外的列,名为 交付状态 现在我们的任务是标记出在 交付状态 栏目,这些栏目是 待定 .

📌 步骤。

  • 按照同样的步骤,从 第一步 第2步 和前面的方法一样,打开VBA控制台
  • 现在在VBA控制台写下以下代码
 Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address RngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed 循环直到rngFind_Value.Address = strAddress_First End If End Sub 

  • 现在进入工作表,运行代码。
  • 请看表格中的输出。

阅读更多。 如何查找Excel列中的最高值(4种方法)

4.VBA使用通配符查找列中的值

最后,我们将看到如何使用通配符在Excel VBA中搜索或查找列中的值。 同样,我们将使用上述相同的数据集来实现这一方法。 我们的任务是使用产品的型号来查找产品价格。 我们可以输入全名或最后/第一个字符的 产品ID .

📌 步骤。

  • 按照同样的步骤,从 第一步 第2步 和前面的方法一样,打开VBA控制台
  • 现在在VBA控制台写下以下代码
 Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ( "*" & Range("D19") & "*", myerange, 4, False) End Sub 

  • 再次,插入一个像前一个一样的按钮。
  • 现在将宏代码分配给按钮。

  • 现在输入任何部分 产品ID 并按下 执行 按钮。

阅读更多。 如何查找Excel列中的最低值(6种方法)

5.Excel VBA查找列中的最大值

在这里,我们想用VBA代码找到一列的最大值。

📌 步骤。

  • 我们想找出最高价格。

  • 现在,把下面的VBA代码放在一个新模块上。
 Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(提示:="选择范围", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub 

  • 然后,按 F5 按钮来运行VBA代码。
  • ǞǞǞ 输入 对话框出现。
  • 从数据集中选择范围。

  • 最后,按 认可 按钮。

我们可以看到对话框中显示的是最大值。

6.Excel VBA查找列中的最后一个值

在这里,我们想知道特定列的最后一行或单元格的值。 例如,我们想知道产品列的最后一个产品

📌 步骤。

  • 输入的是 VBA 以下是该模块的代码。
 Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2) .Value End Sub 

  • 然后,运行代码,按 F5 按钮。

最后的数值会显示在对话框中。

阅读更多。 如何查找Excel中某一列数值的最后出现次数(5种方法)

需要记住的事情

一些常见的错误。

  • 错误。 一次一个价值。 因为 识别 方法一次只能找到一个值。
  • 错误。 #NA VLOOKUP 如果搜索到的值不存在于给定的数据集中,那么这个函数将返回以下结果 #NA 错误。
  • Range("Cell_Number").ClearContents 部分用于清除单元格中的前一个值。 否则,需要手动删除前一个值。

总结

以上是在Excel中使用VBA代码查找列中数值的一些方法。 我已经展示了所有的方法及其各自的例子,但还可以有许多其他的迭代。 我还讨论了所用函数的基本原理。 如果你有任何其他的实现方法,那么请随时与我们分享。 访问我们的网站 ǞǞǞ 获取更多关于Excel的有趣文章。

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.