筛选并删除从其他列中筛选出的条件

时间:2020-04-27 07:56:50

标签: excel vba

每个人。我是VBA语言的新手。根据我的情况,

1)我想从H列中过滤“未完成”并删除

2)我想从Q列中过滤“ Y”并删除它

我已经编写了一些代码来运行它。第一次按运行时,我可以过滤和删除第一个需求,但是如果要过滤和删除第二个需求,则需要再次按运行。我是否可以一次执行这些要求。以下附件是我的代码

Sub try2()
Dim Filterrng1 As Range, Filterrng2 As Range
Dim Delrng1 As Range, Delrng2 As Range
Dim FilterArr1
Dim FilterArr2

Application.ScreenUpdating = False

FilterArr1 = Array("Unfulfilled")
FilterArr2 = Array("Y")

Set Filterrng1 = Range("H1", Range("H" & Rows.Count).End(xlUp))
Set Filterrng2 = Range("Q1", Range("Q" & Rows.Count).End(xlUp))

Set Delrng1 = Filterrng1.Offset(1, 0)
Set Delrng2 = Filterrng2.Offset(1, 0)

Debug.Print LBound(FilterArr1)
Debug.Print LBound(FilterArr2)

For f = LBound(FilterArr1) To UBound(FilterArr1)

    Filterrng1.AutoFilter Field:=1, Criteria1:="=" & FilterArr1(f)

    If Filterrng1.SpecialCells(xlCellTypeVisible).Count > 1 Then
        Delrng1.EntireRow.Delete
    End If


    For a = LBound(FilterArr2) To UBound(FilterArr2)

        Filterrng2.AutoFilter Field:=1, Criteria1:="=" & FilterArr2(a)

        If Filterrng2.SpecialCells(xlCellTypeVisible).Count > 1 Then
            Delrng2.EntireRow.Delete
        End If
    Next
Next



Filterrng1.AutoFilter 'Remove Autofilter from range
Filterrng2.AutoFilter 'Remove Autofilter from range
End Sub

1 个答案:

答案 0 :(得分:0)

sub try3()

Dim rg As Range

Set rg = ActiveSheet.Range("H1").CurrentRegion     'Edit to your range

Dim Filterrng1 As Range, Filterrng2 As Range

Dim Delrng1 As Range, Delrng2 As Range

Dim FilterArr1

Dim FilterArr2

Set Filterrng1 = Range("H1", Range("H" & Rows.Count).End(xlUp))

Set Filterrng2 = Range("Q1", Range("Q" & Rows.Count).End(xlUp))

Set Delrng1 = Filterrng1.Offset(1, 0)

Set Delrng2 = Filterrng2.Offset(1, 0)

rg.AutoFilter Field:=1, Criteria1:="Unfulfilled"

If Filterrng1.SpecialCells(xlCellTypeVisible).Count > 1 Then

    Delrng1.EntireRow.Delete

End If

rg.AutoFilter

rg.AutoFilter Field:=10, Criteria1:="Y"

If Filterrng2.SpecialCells(xlCellTypeVisible).Count > 1 Then

    Delrng2.EntireRow.Delete

End If

end sub

添加其他内容,例如屏幕更新等。

相关问题