我目前正在使用大型機的數據,而不是unlike the data presented here。在這種情況下,我所有的都是類似於我的標準和我的目標數據集的100-AAA的字符串。我已經搜索了一個類似的解決方案,但是我還沒有發現SO上的VBA的範圍問題的直接過濾器。基於範圍VBA的過濾列
我正在嘗試基於一系列標準篩選大型數據集。本來,我開始在單獨的類/子程序收藏玩,後來我壓縮到一個子程序中的使用範圍,具體如下:
Sub FilterTest1()
Dim RngOne As Range
Dim LastCell As Long
Sheets("Criteria").Activate
Sheets("Criteria").Select
Range("A1").Select
LastCell = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
Set RngOne = ActiveSheet.Range("A2:A" & LastCell)
Sheets("Sheet 1").Activate
Sheets("Sheet 1").Select
With ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
Columns("A:A").Select
Selection.AutoFilter
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:=RngOne, Operator:=xlOr
End Sub
不幸的是,我的單元格區域不過濾數據,甚至當使用諸如Operator:=xlOr
的標準時 - 它只顯示用於標準的最後一個單元格值。 VBA代碼不會失敗 - 它只是基於範圍不能正確過濾。
我覺得確實存在一個簡單的解決方案,但我不太明白。
您是否考慮過使用ADO,以便您可以使用SQL命令進行過濾(但仍使用Excel)?在標準和數據集之間執行內部連接可能適合賬單 – barrowc 2012-08-08 23:05:19
此問題早期回答類似問題的幫助 - http://stackoverflow.com/a/7863452/53614?我在沒有管理員權限的工作機器上使用ADO,它工作正常。 YMMV,但值得一試 – barrowc 2012-08-10 02:28:49
好吧;我會在週末給大家一個鏡頭,看看它下週如何部署。對於我的一些較大的數據集使用ADO可能是值得的,因爲任何依賴於SQL的東西都可能長期以更快的速度執行。如果它的功能,那麼這意味着另一個+1你的答案=) – JackOrangeLantern 2012-08-10 14:04:55