0

我一直在研究一个宏,如果表的 A 列中的值与另一个单独的 B 列中的任何值都不匹配,则删除表中的行。目前,我的代码没有正确删除最后一行,并且我终其一生都无法弄清楚为什么。

这是我当前的代码:

Sub Stuff()
    Dim rCell As Range, ColumnA As Range, ColumnB As Range
    Dim rowPoint As Integer

    Set ColumnA = ActiveWorkbook.Worksheets("Sheet1").Range("Table2[Column1]") 
    Set ColumnB = ActiveWorkbook.Worksheets("Sheet1").Range("Table1")

    rowPoint = ColumnA.Count

    On Error Resume Next

    For i = rowPoint To 1 Step -1
        For Each rCell In ColumnA
            If Application.CountIf(ColumnB, rCell.Value) = 0 Then rCell.Rows.Delete

        Next rCell
    Next i

End Sub
4

1 回答 1

-1

当你说最后一行没有被正确删除时,你是什么意思?

它是被删除并且格式有问题还是最后一行根本没有被删除?

如果是格式问题,那么您可以使用

If Application.CountIf(ColumnB, rCell.Value) = 0 Then rCell.Rows.Delete xlShiftUp

这将仅删除该列中的单元格,并将已删除单元格下方的行向上移动,而不会更改其他列的结构。

于 2013-03-08T06:08:06.650 回答