使用VBA使用特定值组合删除Excel中的行

时间:2016-05-11 13:24:31

标签: excel vba excel-vba delete-row

我想在现有宏中插入一些代码,删除除O和P列中具有特定值组合的行之外的所有行。组合在I3中:I13和J3:13。

换句话说,我想保留列O和P中的行分别对应于I3和J3,或者分别对应I6和J6等,并删除所有其他行。

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

远非完美但没有样本数据我假设了一些事情。

Sub deleteRow()

Dim lastRow As Integer, matchVal As String, searchVal As String

lastRow = Range("A5000").End(xlUp).Row

For i = lastRow To 3 Step -1
    matchVal = Cells(i, 9).Value & " " & Cells(i, 10).Value
    searchVal = Cells(i, 15).Value & " " & Cells(i, 16).Value
    If matchVal <> searchVal Then Cells(i, 1).EntireRow.Delete
Next i

MsgBox "Next time I will add an example to my question"
End Sub

如果I和J中的值与O和P中的值不相等,则该行将被删除。

答案 1 :(得分:0)

不确定这是否是您想要的:

Sub Test()

Dim r As Range
Dim i As Long
Dim col1 As Long
Dim col2 As Long
Dim count As Long

col1 = Range("I:I").column
col2 = Range("J:J").column
count = ActiveSheet.Range("I3").End(xlDown).row

For i = count To 3 Step -1
    If Cells(i, col1) <> Cells(i, col1).Offset(0, 6) Or Cells(i, col2) <> Cells(i, col2).Offset(0, 6) Then
        Rows(i).Delete
    End If
Next

End Sub