Sub 筛选()
Dim I, X, Y As Integer
Dim Flag As Boolean
Sheets("数据筛查").Select
X = ActiveCell.SpecialCells(xlLastCell).Row
For I = 2 To X
Flag = False
Y = 2
Do While Flag = False And Sheets("表一").Cells(Y, 2) <> ""
If Cells(I, 2) = Sheets("表一").Cells(Y, 2) Then
Cells(I, 2).Delete 3
I = I - 1
Flag = True
Exit Do
End If
Y = Y + 1
Loop
Y = 2
Do While Flag = False And Sheets("表二").Cells(Y, 2) <> ""
If Cells(I, 2) = Sheets("表二").Cells(Y, 2) Then
Cells(I, 2).Delete 3
I = I - 1
Flag = True
Exit Do
End If
Y = Y + 1
Loop
Y = 2
Do While Flag = False And Sheets("表三").Cells(Y, 2) <> ""
If Cells(I, 2) = Sheets("表三").Cells(Y, 2) Then
Cells(I, 2).Delete 3
I = I - 1
Flag = True
Exit Do
End If
Y = Y + 1
Loop
Y = 2
Do While Flag = False And Sheets("表四").Cells(Y, 2) <> ""
If Cells(I, 2) = Sheets("表四").Cells(Y, 2) Then
Cells(I, 2).Delete 3
I = I - 1
Flag = True
Exit Do
End If
Y = Y + 1
Loop
Next I
End Sub
追问大哥,你这个很好用,但是有个问题,如果数据很少的时候,很快就筛选完了,但是程序还没有跑完,能帮我改改吗?比如,遇到空白就停。
追答我是按你表“数据筛查”最后一个单元格的位置设置结束点的,如果出现你说的情况,说明你这个“数据筛查”表后面有很多别的无用的行。最后一个单元格在什么位置,可以用Ctrl+End测试一下。
可以在:For I = 2 To X
之后加一句语句如下:If Cells(I, 2)="" then exit for