根据其他表格过滤条件设置Excel表格过滤条件

问题描述 投票:0回答:3

我在想一个简单的问题。

我有多个具有唯一 ID 的表。假设这个 ID 在 A 列中。

表一是我的主表。当我从 A 列的表过滤器中选择一个值时,我想将相同的标准调整到其他表(使用 VBA 代码)

但是我可以使用哪个语句将 table1 过滤器的条件读入一个变量,我可以将其用于其他表的过滤条件?

感谢任何提示!

干杯,让-玛丽

我可以找到很多关于如何在带有变量的表上设置自动筛选的信息,但是我找不到如何将活动的自动筛选条件读入变量的解决方案?

excel vba criteria autofilter
3个回答
0
投票
Private Sub simple_example_set_filter(ByVal afilter As String)
   With Range("CC_FILTER_AREA")
      .AutoFilter Field:=1, VisibleDropDown:=False
      .AutoFilter Field:=2, VisibleDropDown:=False
      .AutoFilter Field:=3, VisibleDropDown:=False
      .AutoFilter Field:=4, VisibleDropDown:=False
      .AutoFilter Field:=5, VisibleDropDown:=False
      .AutoFilter Field:=6, Criteria1:=afilter, Operator:=xlOr, Criteria2:="=~", VisibleDropDown:=False
   End With
End Sub

我读了一些过滤器并创建了一个字符串以用于报告:

Public Function GetFilterCriteria(rng As Range, Optional prompt As String = vbNullString) As String
Dim str1 As String, str2 As String, c As Long
With rng.Parent.AutoFilter
   c = .Range.Column
   With .Filters(rng.Column - c + 1)
      If Not .On Then
          GetFilterCriteria = vbNullString
          Exit Function
      End If
      str1 = .Criteria1
      If .Operator = xlAnd Then
          str2 = " and " & Mid(.Criteria2, 2)
      ElseIf .Operator = xlOr Then
          str2 = " or " & Mid(.Criteria2, 2)
      End If
   End With
End With
If (Left(str1, 2) = "<>") Then
   GetFilterCriteria = prompt & Mid(str1, 3)
Else
   GetFilterCriteria = prompt & Mid(str1, 2)
End If
'AutoFilter_Criteria = UCase(Rng) & ": " & str1 & str2
End Function

0
投票

获取筛选表的条件

Sub GetCriteria()
Dim ws As Worksheet
Dim i As Long
Dim tbl1 As ListObject

Set ws = ThisWorkbook.Worksheets("Sheet1")

Set tbl1 = ws.ListObjects("Table1")
   
   With tbl1.AutoFilter
      For i = 1 To .Filters.Count
         If .Filters(i).On Then
            '.Range(1, i).Column is the filtered column
            Debug.Print Mid(.Filters(.Range(1, i).Column).Criteria1, 2)
         End If
      Next i
   End With
End Sub

0
投票

感谢这个很好的例子。现在我明白如何解决这个问题了。我设法在我自己的代码中实现了它并且它有效。非常感谢!

© www.soinside.com 2019 - 2024. All rights reserved.