我遇到与此链接相同的问题 - Get AutoFilter sort criteria and apply on second sheet
我已通过链接,但无法获得所需的输出。
我在Sheet1中的过滤条件(我们可以根据需要更改)在其中一个列值(例如:col 10)上,现在基于第10列中基于过滤条件显示的数据,我想用sheet 1中的数据过滤sheet2。
我已经看到他们中的很多人在ARRAY中使用静态值如图所示但是如何自动过滤动态更改sheet1中的值并在Sheet2中过滤。请指教
.AutoFilter Field:=10, Criteria1:=Array("value1", "value2"), Operator:=xlFilterValues
答案 0 :(得分:0)
我想你想要这样的东西:
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
答案 1 :(得分:0)
如果您只是在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
我不知道您有多少条件(或其位置),但您可以添加/编辑。我的基础是你只有2个标准,但当然可以放大。