首页 > 解决方案 > 宏过滤列由两个不同的值 - Excel

问题描述

关于这个话题有几个问题。我尝试了几种方法,但似乎无法使其正常工作。

我有一个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,

但它不起作用。是不是有什么东西阻碍了剧本?

标签: excelvbafilter

解决方案


据我所知,您最多只能对 2 个条件使用过滤器选项。除此之外的任何东西都需要数组..

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

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

试一试..更改适用的范围/标题,并且字段编号必须更改您基于哪个列的过滤器。


推荐阅读