Excel 编一个vba自定义函数 经过很多次筛选后 以筛选不隐藏的结果为准 计算大于等于A1小于 Excel 经过很多次筛选后 以筛选结果为准 计算200到3...

作者&投稿:勾童 (若有异议请与网页底部的电邮联系)

你问的关键点应该是如何不统计已经滤掉隐藏起来的数值吧。可用SpecialCells(xlCellTypeVisible)。代码如下供参考。

'本例中,统计的是第E列的数据,按需修改成你要的列号
'最大值 最小值类型是Double,可按需修改为你的类型
Private Sub CommandButton1_Click()
    Dim iNum As Long, iMax As Double, iMin As Double
    iMax = 100  '最大值 按需修改为你要的值
    iMin = 95   '最小值 按需修改为你要的值
    
    Dim Rng As Range, cel As Range
    Set Rng = ActiveSheet.Range("E1:E" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible)
    
    For Each cel In Rng
        If cel.Value <= iMax And cel.Value >= iMin Then iNum = iNum + 1
    Next
    
    MsgBox iNum
End Sub


在excel里 编一个vba自定义函数 经过很多次筛选后 以筛选不隐藏的结果为准 计算a4:a10~

用公式就好了:
=COUNTIFS(A4:A100,">="&A1,A4:A100,"<="&A2)

假设楼主的数据区域为 A2:A100,可以使用简单的公式来完成:
=COUNTIF(A2:A100,">=200")-COUNTIF(A2:A100,">300")