[办公] 从 B1 单元格开始查找 AJ 列相同内容,并将对应行的 AR 列值填到 M 列

JUMU实名认证 发表于 2026-02-09 10:46 | 显示全部楼层 | 复制链接分享      上一主题  翻页  下一主题
编写这个 Excel VBA 程序,实现从 B1 单元格开始查找 AJ 列相同内容,并将对应行的 AR 列值填到 M 列的功能。
  1. Sub 查找并填充数据()
  2.     Dim ws As Worksheet
  3.     Dim lastRow As Long
  4.     Dim i As Long, j As Long
  5.     Dim searchValue As String
  6.     Dim foundRow As Long
  7.    
  8.     ' 设置当前工作表
  9.     Set ws = ActiveSheet
  10.    
  11.     ' 获取数据的最后一行
  12.     lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
  13.    
  14.     ' 从B1开始遍历
  15.     For i = 1 To lastRow
  16.         ' 获取要查找的值
  17.         searchValue = ws.Cells(i, "B").Value
  18.         
  19.         ' 检查是否为空值
  20.         If searchValue <> "" Then
  21.             ' 在AJ列中查找相同的值
  22.             For j = 1 To lastRow
  23.                 If ws.Cells(j, "AJ").Value = searchValue Then
  24.                     ' 找到匹配值,将AR列的值填入M列
  25.                     ws.Cells(i, "M").Value = ws.Cells(j, "AR").Value
  26.                     Exit For ' 找到第一个匹配就退出内层循环
  27.                 End If
  28.             Next j
  29.         End If
  30.     Next i
  31.    
  32.     MsgBox "数据填充完成!", vbInformation, "提示"
  33. End Sub
复制代码
这个程序的功能说明:

1 遍历范围:从 B1 单元格开始,遍历到数据的最后一行
2 查找逻辑:


  • 读取 B 列每个单元格的值
  • 在 AJ 列中查找相同的内容
  • 找到匹配后,将对应行的 AR 列值填入 M 列
    3 优化:找到第一个匹配值就停止查找,提高效率

如果您需要更高效的版本(特别是数据量大时),可以使用 VLOOKUP 函数:
  1. Sub 查找并填充数据_高效版()
  2.     Dim ws As Worksheet
  3.     Dim lastRow As Long
  4.     Dim i As Long
  5.     Dim searchValue As String
  6.    
  7.     Set ws = ActiveSheet
  8.     lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
  9.    
  10.     ' 启用屏幕更新以提高性能
  11.     Application.ScreenUpdating = False
  12.    
  13.     For i = 1 To lastRow
  14.         searchValue = ws.Cells(i, "B").Value
  15.         
  16.         If searchValue <> "" Then
  17.             ' 使用VLOOKUP函数查找
  18.             On Error Resume Next
  19.             ws.Cells(i, "M").Value = Application.WorksheetFunction.VLookup( _
  20.                 searchValue, ws.Range("AJ1:AR" & lastRow), 5, False)
  21.             On Error GoTo 0
  22.         End If
  23.     Next i
  24.    
  25.     Application.ScreenUpdating = True
  26.     MsgBox "数据填充完成!", vbInformation, "提示"
  27. End Sub
复制代码
使用方法:
1 按 Alt + F11 打开 VBA 编辑器
2 插入一个新的模块
3 复制粘贴上面的代码
4 按 F5 运行程序


注意事项:

  • 确保 AJ 列的数据格式与 B 列一致
  • 如果有多个相同的值,程序会使用第一个匹配的结果
  • 程序会处理空值情况,不会对空单元格进行查找

  距米网  

找到您想要的设计

工程师、学生在线交流学习平台
关注我们

手机版- 距米网 |苏公网安备32041102000587号

©2017-2025 苏ICP备18040927号-1