Excel VBA-循环未正确删除表中的最后一行
我一直在处理一个宏,如果表的a列中的值与另一个单独的B列中的值不匹配,该宏将删除表中的行。目前,我的代码没有正确删除最后一行,我一辈子都无法找出原因 这是我目前的代码:Excel VBA-循环未正确删除表中的最后一行,vba,excel,excel-2007,Vba,Excel,Excel 2007,我一直在处理一个宏,如果表的a列中的值与另一个单独的B列中的值不匹配,该宏将删除表中的行。目前,我的代码没有正确删除最后一行,我一辈子都无法找出原因 这是我目前的代码: Sub Stuff() Dim rCell As Range, ColumnA As Range, ColumnB As Range Dim rowPoint As Integer Set ColumnA = ActiveWorkbook.Worksheets("Sheet1").Range("Tabl
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
你说最后一行没有被正确删除是什么意思 它是否被删除并且格式有问题,或者最后一行根本没有被删除 如果是格式问题,那么您可以使用
If Application.CountIf(ColumnB, rCell.Value) = 0 Then rCell.Rows.Delete xlShiftUp
这将只删除该列中的单元格,并将已删除单元格下的行向上移动,而不更改其他列的结构。i=>的
是什么。。。接下来我
循环打算怎么做i
从不在循环体中引用,每个rCell的。。。下一个rCell
循环本身似乎就足够了抱歉,我有点不知道这一点。之后我清理了一下脚本,这样它就可以在整个范围内正确地向后循环。它仍然随机留下一行不应该在那里的东西。但是android_新手关于xlShiftUp的评论让这个宏起作用了…尽管我还不完全清楚为什么。天哪,xlShiftUp把它钉在了头上。非常感谢。您知道,您可以使用SpecialCells@user2146675:如果此答案解决了您的问题,请单击复选标记将其标记为答案!