求编写脚本:比对Sheet2与Sheet1数据并删除重复行
Excel VBA脚本:删除Sheet1中与Sheet2!B3重复的行
- 以下是实现需求的VBA代码,直接复制到Excel的VBA编辑器就能用:
Sub DeleteDuplicateRows() Dim targetValue As Variant Dim ws1 As Worksheet, ws2 As Worksheet Dim lastRow As Long Dim i As Long ' 定义目标工作表 Set ws1 = ThisWorkbook.Worksheets("Sheet1") Set ws2 = ThisWorkbook.Worksheets("Sheet2") ' 获取Sheet2的B3单元格值 targetValue = ws2.Range("B3").Value ' 如果B3为空,直接退出 If IsEmpty(targetValue) Then MsgBox "Sheet2的B3单元格为空,无法执行查找!" Exit Sub End If ' 获取Sheet1中A列最后一行的行号 lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row ' 从最后一行往上遍历(避免删除行导致索引混乱) For i = lastRow To 1 Step -1 ' 对比当前行A列的值和目标值 If ws1.Cells(i, "A").Value = targetValue Then ' 删除该行 ws1.Rows(i).Delete End If Next i MsgBox "已完成重复行删除操作!" End Sub
使用步骤:
- 打开你的Excel文件,按下
Alt + F11打开VBA编辑器 - 右键点击左侧工作簿名称,选择「插入」→「模块」
- 将上面的代码粘贴到模块窗口中
- 按下
F5运行脚本,或回到Excel界面通过「开发工具」→「宏」选择DeleteDuplicateRows执行
- 打开你的Excel文件,按下
注意事项:
- 操作前建议备份文件,避免误删数据
- 如果Sheet1/Sheet2的名称有改动,要修改代码中
Worksheets("Sheet1")和Worksheets("Sheet2")里的名称
内容的提问来源于stack exchange,提问作者DragonflyTech
相关产品推荐
相关产品推荐

