我在一堆列上有一個標準過濾器,我想閱讀過濾器標準。在選擇超過2個標準的情況下,這不是真正的問題。我有一行不同的字符串,我希望能夠得到用戶選擇的標準。目前我正在處理這段代碼:VBA:返回超過2個過濾器標準
Set ws = Worksheets(actSheet)
For Each flt In ws.AutoFilter.Filters
If flt.On = True Then
criterias = criterias & flt.Criteria1 & ", "
criterias = criterias & flt.Criteria2 & ", "
End If
Next flt
這隻給我獲得2個標準最大值的機會。 我發現這條線在不同的論壇代碼,但它被用於其他的原因,我真的不知道如何使用我這個代碼:
ActiveSheet.AutoFilter Field:=1, Criteria1:=Array(param1, param2, param3,...) _
Operator:=xlFilterValues
這樣你就可以設置標準,我認爲,但我想得到吧。 任何想法如何我可以使用此代碼?或者我的問題的另一個建議?
在此先感謝!
編輯:
嗯,我曾在這個有很多的時間,仍然沒有解決。在Array中的Criteria1中獲取數組是不可能的。總是相同的錯誤「不能分配給數組」。雖然我分配了相同的陣列來篩選標準1 10行代碼之前...
所以此工程:
Dim arr(3) As String
arr(2) = "test1"
arr(1) = "test2"
arr(3) = "test3"
ActiveSheet.Range("A1:C1").AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
但這並不:
arr = ws.AutoFilter.Filters.Criteria1
謝謝您的回答!但我早些時候有這樣一個方法,它有一個問題,我會通過例子來解釋它:Col1包含Test1,Test2和Test3; Col2包含1,2,1。現在我通過Test1和Test2篩選Col1,並通過1篩選Col2。 在這一點上,該方法只返回Test1和1,但它應該返回Test1,Test2和1. 我不明白,如果我將鼠標指向filter-dropdown按鈕,它確切地說明了我想要獲取的內容!但我不知道該從哪裏得到它......而且,由於我在一週的研究中沒有找到答案,我可能會認爲沒有答案。 – ch1ll
@ sk1ll實際上,該例程也可以在其他列上獲取過濾器。但是如果過濾了某些東西,你需要添加檢查。 – L42
我知道,但方法運行時,所有的過濾器設置。只有在應用了所有濾鏡後纔會查看這些值。在像我上面所述的情況下,可能會有一個過濾器集,但沒有實際值,因爲另一列中的其他過濾器使該行不可見。 可以理解嗎?或者我只是想念一些東西而不理解你? – ch1ll