宏过滤器列按两个不同的值-Excel

时间:2018-11-22 23:57:53

标签: excel vba filter

关于此主题有几个问题。我已经尝试了几种方法,但似乎无法正常工作。

我有一个auto-copy script工作,它从一个sheetcopies到另一个sheet取特定值。如果我copy使用一个值,则效果很好,但是添加第二个值时却无法正常工作。因此,复制value1或value2。以下是我的code

Sub FilterAndCopy()
    Dim rng As Range, sht1 As Worksheet, sht2 As Worksheet

    Set sht1 = Worksheets("LOG")
    Set sht2 = Worksheets("P Or A")

    sht2.UsedRange.ClearContents

    With Intersect(sht1.Columns("B:BP"), sht1.UsedRange)
        .Cells.EntireColumn.Hidden = False ' unhide columns
        If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
        .AutoFilter field:=1, Criteria1:="P"
        .AutoFilter field:=1, Criteria1:="A"

根据其他问题,我尝试添加以下内容:

1) Operator:=xlFilterValues,
2) Operator:=xlOr,

但是它不起作用。还有其他阻碍脚本的内容吗?

1 个答案:

答案 0 :(得分:1)

据我所知,您最多只能将过滤器选项用于2个条件。除此之外,您都需要数组。

为此,我假设您的标题位于第1行的B:BP范围内,而您要过滤的字段为col B

sht1.Range("B1:BP1").AutoFilter Field:=1, Criteria1:="P", Operator:=xlOr, Criteria2:="A"

请允许。在适用的范围内更改范围/标题,还必须更改字段号,以使您将过滤器基于该字段。