在excel vba中应用过滤器后计算所选的单元格范围

时间:2016-04-04 11:59:59

标签: excel vba excel-vba

感谢您查看我的情况:)我尝试在应用过滤器后计算特定列中的选定行的尝试非常混乱。应用过滤器后,我正在计算列和列的选定行数。它会报告所有行。过滤的行是21但似乎包括所有行。我只想过滤后选择的行数。

Sub Report()

    Dim sh As Worksheet
    Dim k As Long

    Set sh = ThisWorkbook.Sheets("Testing")

    sh.Range("F21").Activate

    ActiveSheet.Range("F" & Rows.Count).End(xlUp).AutoFilter Field:=6, Criteria1:="Fatal"

    ActiveSheet.Range("f21", ActiveSheet.Range("f21").End(xlDown)).Select

    MsgBox ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count
    'FatCnt = Range("F21").Rows.SpecialCells(xlCellTypeVisible).Count
    'FatCnt = Selection.Count

    'MsgBox FatCnt    

    Selection.AutoFilter

End Sub

2 个答案:

答案 0 :(得分:3)

在单元格中使用公式来获得“致命”计数

=COUNTIF(F:F,"Fatal")

Sub Report()
    With ThisWorkbook.Worksheets("Testing")
        fatalcount = WorksheetFunction.CountIf(Range("F:F"), "Fatal")
    End With
End Sub

答案 1 :(得分:2)

工作表的本地SUBTOTAL function可以很好地计算过滤后的单元格。

TargetNullValue