我想按列(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秒 有没有更快的方法,请吗?
答案 0 :(得分:2)
让我们看看我是否理解了您的问题:rng01
是九列之一,您希望对其进行过滤,以便只显示rng01
= 323
中值的行。< / p>
您可以使用AutoFilter
。您需要在数据上方添加标题行(但可以为空白)。
rng01.AutoFilter
rng01.AutoFilter Field:=1, Criteria1:="323", VisibleDropDown:=False
如果表单rng01
引用已有效AutoFilter
,则第一个rng01.AutoFilter
会将其清除。
请注意,rng01
一列宽。
如果实际上rng01
引用的范围大于一列,请使用
rng01.Columns(3).AutoFilter
rng01.Columns(3).AutoFilter Field:=1, Criteria1:="323", VisibleDropDown:=False