VBA如何在列X的值与列Y的值不匹配时删除行

我试图删除列x的单元格值与列y的单元格值不匹配的每一行。 我不断收到对象错误,我很确定我错过了一些明显的东西。

Sub Gooddata() Application.ScreenUpdating = False lr = Range("C65536").End(xlUp).Row For a = lr To 1 Step -1 If Cells(a, 8).Value <> Cells(a, 9).Value Then Cells(a, 3).Select ActiveCell.EntireRow.Delete = True End If Next a Application.ScreenUpdating = True End Sub 

编辑:我已经对代码进行了编辑,根据评论的build议,这里是input图像的代码和输出图像。

在这里输入图像描述

 Sub Gooddata() Application.ScreenUpdating = False lr = Range("C65536").End(xlUp).Row For a = lr To 1 Step -1 If Cells(a, 8).Value <> Cells(a, 9).Value Then Cells(a, 3).EntireRow.Delete End If Next a Application.ScreenUpdating = True End Sub 

如果以我想要的方式执行的代码Old Argus Building 12不会被删除,但是下面的行会因为逗号和短划线而被删除。

在这里输入图像说明

尝试这个。 如果第二列有比第一个XD多的字,这可能会中断

 Sub Gooddata() Dim lr As Long Dim arr As Variant Dim brr As Variant Application.ScreenUpdating = False With ActiveSheet lr = .Cells(.Rows.count, "G").End(xlUp).Row For A = lr To 1 Step -1 I = 0 arr = Split(Trim(.Cells(A, 7).Value2), " ") brr = Split(Trim(.Cells(A, 8).Value2), " ") For Each e In arr '.Cells(A, 9) = e If e <> brr(I) Then .Cells(A, 3).EntireRow.Delete Exit For 'GoTo yarr End If I = I + 1 Next e 'yarr: 'Erase arr 'Erase brr Next A End With Application.ScreenUpdating = True End Sub 

之前:

在这里输入图像说明

后:

在这里输入图像说明