自动筛选-动态更改筛选条件

  • 本文关键字:筛选 条件 动态 excel vba
  • 更新时间 :
  • 英文 :


我有和这个链接中相同的问题-获取自动筛选排序标准并应用于第二张

我已经浏览了链接,但无法获得所需的输出。

我在Sheet1中对其中一个列值(例如:col 10)进行了筛选条件(我们可以根据需要进行更改),现在根据根据筛选条件显示的第10列中的数据,我想用sheet2中的数据进行筛选。

我已经看到他们中的许多人在ARRAY中使用静态值,如图所示,但我如何在sheet1中自动过滤动态变化的值,并在Sheet2中过滤。请告知

.AutoFilter Field:=10, Criteria1:=Array("value1", "value2"), Operator:=xlFilterValues

如果您只是在VBA中定义数组呢?

Dim CritArray(2) as String
 CritArray(0) = Cells(1,1).Value
 CritArray(1) = Cells(2,1).Value

然后只需编辑您的代码行:

.AutoFilter Field:=10, Criteria1:=Array(CritArray(0),CritArray(1)), Operator:=xlFilterValues

我不知道你有多少标准(或它们的位置),但你可以这样添加/编辑。我这样做是基于这样一个事实,你只有两个标准,但它当然可以扩大。

我想你想要这样的东西:

Sub tgr()
    Dim wsData As Worksheet
    Dim wsCriteria As Worksheet
    Dim arrCriteria As Variant
    Set wsData = Sheets("Sheet2")
    Set wsCriteria = Sheets("Sheet1")
    arrCriteria = Application.Transpose(wsCriteria.Range("J4", wsCriteria.Range("J4").End(xlDown)).Value)
    With wsData.UsedRange
        .AutoFilter 10, arrCriteria, xlFilterValues
    End With
    Set wsData = Nothing
    Set wsCriteria = Nothing
    If IsArray(arrCriteria) Then Erase arrCriteria
End Sub

最新更新