Excel 逐行删除,如果单元格H=单元格I,则删除整行
如果单元格H1=单元格I1,则删除整行。然后下一行,单元格H2,单元格I2,保留。然后是下一排 如果行的两个单元格相同,我想删除整行。我搜索了,这是最接近我想要实现的,并修改了代码Excel 逐行删除,如果单元格H=单元格I,则删除整行,excel,vba,Excel,Vba,如果单元格H1=单元格I1,则删除整行。然后下一行,单元格H2,单元格I2,保留。然后是下一排 如果行的两个单元格相同,我想删除整行。我搜索了,这是最接近我想要实现的,并修改了代码 Sub CellAequalCellB () Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Set ws = ThisWorkbook.Sheets("Sheet1") lastRow = ws.Range
Sub CellAequalCellB ()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("H1:I" & lastRow)
' filter and delete all but header row
With rng
.AutoFilter field:=1, Criteria1:=" .AutoFilter field:=2 "
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
' turn off the filters
ws.AutoFilterMode = False
End Sub
但是,当我运行时,entirerow.delete出现错误 您的自动筛选代码有许多错误,因此我已将该方法更改为简单的反向循环
sub CellAequalCellB ()
Dim ws As Worksheet, rng As Range
Dim lastRow As Long, i as long
with ThisWorkbook.Sheets("Sheet1")
lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
for i=lastrow to 1 step -1
if .cells(i, "H") = .cells(i, "I") then _
.rows(i).EntireRow.Delete
next i
end with
End Sub
我会努力改进的。感谢您在这方面的帮助,祝您有美好的一天!