VBA删行,必须逆向删,从下向如塌早上处理。
咱们假设身份证号是从A2到A100。
这段代码的效果,是从最后一行向第2行,逐行进行判断。
先用IF判断A2至A列第i行中,含有多少个Ai的身份证号,
如果第2行至第i行含有Ai这个身份证号的数量大于1个,说明Ai这个身份证号是重复的,
满意这个条件的话,再用另一个IF继续判断,
如果Bi是空值或者等于0,
那么第i行删除。
代码如下,你复制吧:
Sub ShanChong()
Dim i&
For i = 100 To 2 Step -1 '逆向遍历第100至第2
If WorksheetFunction.CountIf(Range("A2:A" & i), Range("A" & i)) > 1 Then '如果Ai在A2:Ai中的个数大于1个
If Range("B" & i) = "" Or Range("B" & i) = 0 Then '如果Bi等于空或者等于0
Rows(i).Delete '那么删除第i行
衫裂 End If
End If
Next
渣雀 MsgBox "处理完毕!", , "提示" '完毕时弹窗提醒
End Sub
很简单!就是a列有50个身份证号码,身份证号有重复的,重复的次数不同!目的是去重身份证号,且只去除后面b列金额为0的。(重复的身份证里只有一个后面有金额,其它都是0)
不重复的身份证号后面也有金额为0的!