我已將 csv 檔案轉換為啟用宏的作業表,以使用我撰寫的宏來過濾頁面,該頁面回傳與條件陣列中的任何字串匹配的列的任何行。在多個檔案上運行它時,它只回傳陣列中的幾個字串。我為該檔案擁有的 200k 行中的任何陣列值都沒有匹配項。但是,如果我采用第一個字串并手動過濾同一個檔案,我會得到 100 多個匹配項。功能有問題嗎?
(我去掉了“_”換行符,因為它們沒有在 SO 中排列。)
Here's the function:
Sub filter_child_accounts()
ActiveSheet.Range("A1:FW1").AutoFilter Field:=8, Criteria1:=Array( "string1", "string2",
"string3", "string4", "string5", "string6", "string7", "string8", ..., "stringN"), _ Operator:=xlFilterValues
End Sub
陣列中有大約 100 個字串,所以我認為可能太多了。沒有回傳錯誤,除了標題之外只有一張空白紙,但我知道條件陣列中的第一個字串至少有 100 多個匹配項。任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
這對我來說可以很好地過濾 100 個值:
Sub filter_child_accounts()
Dim i As Long, arr(1 To 100),arr2
For i = 1 To 100
arr(i) = "blah" & i
Next i
If ws.FilterMode Then ws.ShowAllData 'remove any current filter
ActiveSheet.Range("A1:J1").AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
'Alternative approach picking the array directly from a range on another sheet
arr2 = Application.Transpose(Sheets("Vals").Range("A1:A100").Value)
ActiveSheet.Range("A1:J1").AutoFilter Field:=1, Criteria1:=arr2, Operator:=xlFilterValues
End Sub
資料表在 ColA 中有“blah1”、“blah2”等
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/419973.html
標籤:
