2012-10-13 33 views
1

我想在一個柱(rng01)來過濾的範圍內通過的值(9列和1400行)如何更快地過濾範圍?

Application.ScreenUpdating = False 
db.Rows.Hidden = False 
For Each cell In rng01.Cells 
If Not cell.Value = "323" Then 
cell.EntireRow.Hidden = True 
End If 
Next cell 
Application.ScreenUpdating = True 

這工作,但需要約3-4秒。
有沒有更快的方法,請問?

回答

2

讓我們看看我是否理解您的問題:rng01是九列之一,您要過濾以便只有其中rng01 = 323中的值可見的行。

您可以使用AutoFilter。數據上方需要一個標題行(但可以爲空)。

rng01.AutoFilter 
rng01.AutoFilter Field:=1, Criteria1:="323", VisibleDropDown:=False 

如果片材rng01 referes到已具有活性AutoFilter,第一rng01.AutoFilter將其清除。

請注意,rng01一列寬

事實上,如果rng01 referes到更廣泛的範圍比一列,用

rng01.Columns(3).AutoFilter 
rng01.Columns(3).AutoFilter Field:=1, Criteria1:="323", VisibleDropDown:=False 
+0

克里斯,它的工作原理,但 'VisibleDropDown:=假' 不工作。 DropDownArrows是可見的。 – Alegro

+0

在Excel 2010中可用。您使用的是什麼版本? –

+0

+1自動篩選器規則 – nutsch