我有和这个链接中相同的问题-获取自动筛选排序标准并应用于第二张
我已经浏览了链接,但无法获得所需的输出。
我在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