Excel筛选2个不同列的VBA宏

时间:2012-07-02 18:53:00

标签: excel vba filter

我有2列空白,或显示用户有权访问的数据库。列不相同,因此宏中需要OR逻辑,但我无法正确使用语法。这就是我所拥有的 - 切换效果很好,只是无法获得OR。我真的更喜欢这种方法,而不是“高级过滤”方法。

With ActiveSheet
    If .AutoFilterMode = True And .FilterMode = True Then
        .AutoFilterMode = False And .FilterMode = False
    Else
        .AutoFilterMode = True And .FilterMode = True
        ActiveSheet.Range("$E$7:$P$1765").AutoFilter Field:=1, Criteria1:="=DatabaseA", _
        Operator:=xlOr, Field:=7, Criteria2:="=DatabaseA"
    End If
End With

2 个答案:

答案 0 :(得分:0)

运行你的代码我得到了这个

enter image description here

所以看起来像预期的那样创建一个OR。 我会检查您的DatabaseA定义是否按预期设置。 如果您希望将字符串“DatabaseA”作为过滤条件,则可以删除前面的等号,或者DatabaseA是变量? 从你的例子中不清楚是什么情况

答案 1 :(得分:0)

决定最佳解决方案是将2列输出到第3列:

=IF(K8="DatabaseA","DatabaseA",IF(Q8="DatabaseA","DatabaseA","--"))

并且新列输入到宏中。效果很好。