如何更快地过滤范围?

我想通过列(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秒。
有更快的方法,请问?

让我们看看我是否理解你的问题: rng01是九列之一,你想过滤,只有在rng01 = 323的值是可见的行。

你可以使用AutoFilter来做到这一点。 你需要在你的数据上面有一个标题行(但可以是空白的)。

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

如果表格rng01表示已经有一个活动的自动rng01.AutoFilter ,则第一个rng01.AutoFilter清除它。

请注意, rng01一列宽

如果实际上rng01的范围比一列宽,则使用

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