我一直在处理一个宏,该宏删除表中的行,如果表的列A中的值与另一个单独的值中的任何值不匹配B列。目前,我的代码并没有正确地删除最后一行,我不能为了我的生活找出原因。Excel VBA - 循环未正确删除表中的最后一行
这里是我当前的代码:
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
什么是For I = ... Next i'循环意味着什么? '我'从来没有在循环体中引用,并且'For Each rCell ... Next rCell'循环自己似乎已经足够了 – barrowc 2013-03-08 01:45:40
对不起,我对此很有好感。之后我稍微清理了脚本,这样它实际上正确地向后循环了整个范围。它仍然留下一个不应该在那里的随机排。但android_newbie关于xlShiftUp的评论得到了这个宏的工作......虽然我仍然不完全清楚为什么。 – user2146675 2013-03-08 08:41:26