【问题标题】:Filter based on two checkbox values基于两个复选框值进行过滤
【发布时间】:2021-02-28 18:08:00
【问题描述】:

以下代码通过字符串 (filterEntry) 过滤工作表列 (filterColumn)。根据用户表单中两个复选框(CheckBoxNR1CheckBoxAI1)的选择,这应该将辅助过滤器应用于 E 列。

无论两个复选框(CheckBoxNR1CheckBoxAI1)的值如何,这都会从 E 列中过滤out“NEEDS RESOURCE”和“AWAITING INFO”。

我想要达到的目标:

  • “NEEDS RESOURCE”仅在CheckBoxNR1 = False 时被过滤掉
  • “等待信息”仅在CheckBoxAI1 = False 时被过滤掉

当两个复选框 = True 时,不应将过滤器应用于 E 列。

'Filter for Team Report
If TeamReportBtnClick = True Then
    Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=filterColumn, Criteria1:=filterEntry
    If CheckBoxAI1 = False And CheckBoxNR1 = False Then
        Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>NEEDS RESOURCE", Criteria2:="<>AWAITING INFO", Operator:=xlAnd
    ElseIf CheckBoxAI1 = True And CheckBoxNR1 = False Then
        Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>NEEDS RESOURCE"
    ElseIf CheckBoxAI1 = False And CheckBoxNR1 = True Then
        Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>AWAITING INFO"
    End If
End If

【问题讨论】:

  • 在应用这些过滤器之前您是否清除了这些过滤器?
  • 这是每次生成的全新工作表,在此代码之前未应用任何过滤器。

标签: excel vba checkbox filter userform


【解决方案1】:

缺少的只是对存在复选框的用户表单名称的引用(用户表单称为Reports

    If TeamReportBtnClick = True Then
        Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=filterColumn, Criteria1:=filterEntry
            If Reports.CheckBoxAI1 = False And Reports.CheckBoxNR1 = False Then
                Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>NEEDS RESOURCE", Criteria2:="<>AWAITING INFO", Operator:=xlAnd
            ElseIf Reports.CheckBoxAI1 = True And Reports.CheckBoxNR1 = False Then
                Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>NEEDS RESOURCE"
            ElseIf Reports.CheckBoxAI1 = False And Reports.CheckBoxNR1 = True Then
                Sheets("Data_Sheet").Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="<>AWAITING INFO"
            End If
    End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多