Excel VBA-筛选表的行数。保持为4而不是0

时间:2018-12-30 10:13:05

标签: excel vba

在过滤表之后,我试图对行进行计数,但是保持4而不是0。所以我不确定代码在哪里出错了?

Sub Test_filter()

' Test_filter Macro

    Rows("4:4").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$4:$F$53").AutoFilter Field:=6, Criteria1:="14,982"
    Range("M54") = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count

End Sub

当我过滤结果时,即使我看到0行,但对于计数的行,它仍会给我4。所以我不确定为什么吗?

2 个答案:

答案 0 :(得分:1)

您正在使用使用范围进行计数。更改为过滤范围,例如

Range("M54") = ActiveSheet.Range("$A$4:$F$53").SpecialCells(xlCellTypeVisible).Rows.Count

减去1以删除标题。

答案 1 :(得分:0)

谢谢QHarr。效果很好。如果我尝试将此代码循环到文件夹中的其他文件,是否有办法让我概括过滤范围,以便将其应用于具有不同表大小的不同工作簿?