[办公] 编写Excel VBA程序,从B1单元格开始,查找P列,找到相同的内容,将对应行的Q列值填...

JUMU实名认证 发表于 2026-02-07 19:45 | 显示全部楼层 | 复制链接分享      上一主题  翻页  下一主题
我来帮你编写这个Excel VBA程序,它会从B1单元格开始查找P列中的相同内容,并将对应行的Q列值填入J列。

  1. Sub 查找并填充数据()
  2.     Dim ws As Worksheet
  3.     Dim lastRowB As Long, lastRowP As Long
  4.     Dim i As Long, j As Long
  5.     Dim lookupValue As String
  6.     Dim found As Boolean
  7.    
  8.     ' 设置当前工作表
  9.     Set ws = ActiveSheet
  10.    
  11.     ' 获取B列和P列的最后一行
  12.     lastRowB = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
  13.     lastRowP = ws.Cells(ws.Rows.Count, "P").End(xlUp).Row
  14.    
  15.     ' 从B1开始遍历B列
  16.     For i = 1 To lastRowB
  17.         lookupValue = ws.Cells(i, "B").Value
  18.         
  19.         ' 如果B列单元格为空,跳过
  20.         If lookupValue = "" Then
  21.             ws.Cells(i, "J").Value = ""
  22.             GoTo NextIteration
  23.         End If
  24.         
  25.         found = False
  26.         
  27.         ' 在P列中查找相同的值
  28.         For j = 1 To lastRowP
  29.             If ws.Cells(j, "P").Value = lookupValue Then
  30.                 ' 找到匹配项,将Q列对应的值填入J列
  31.                 ws.Cells(i, "J").Value = ws.Cells(j, "Q").Value
  32.                 found = True
  33.                 Exit For
  34.             End If
  35.         Next j
  36.         
  37.         ' 如果没有找到匹配项
  38.         If Not found Then
  39.             ws.Cells(i, "J").Value = "未找到匹配"
  40.         End If
  41.         
  42. NextIteration:
  43.     Next i
  44.    
  45.     ' 显示完成消息
  46.     MsgBox "数据填充完成!", vbInformation, "操作完成"
  47. End Sub
复制代码


**使用说明:**


1 按 `Alt + F11` 打开VBA编辑器
2 插入一个新的模块
3 将上面的代码粘贴进去
4 按 `F5` 运行宏,或在Excel中添加一个按钮来调用这个宏


**功能说明:**
- 从B1单元格开始遍历B列的所有数据
- 在P列中查找相同的内容
- 找到匹配项后,将对应行Q列的值填入J列
- 如果B列为空,J列也留空
- 如果没有找到匹配项,J列显示"未找到匹配"


你可以根据需要修改代码中的提示信息或处理逻辑。

  距米网  

找到您想要的设计

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

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

©2017-2025 苏ICP备18040927号-1