Ive表格,使用少量标准过滤。然后我需要找到filterd行计数。所以为此我使用了以下代码。
rCount = Application.WorksheetFunction.Subtotal(3, Sheets("Report_bar").Range("A2:A500000"))
但rCount始终显示为零
我明白我做错了什么。
答案 0 :(得分:2)
这取决于您的要求和数据。您正在使用SUBTOTAL 3,即COUNTA
忽略隐藏的行:
1)使用 AGGREGATE 功能3,5(如果想要数字则使用2,5)
rCount = Application.WorksheetFunction.Aggregate(3, 5,Sheets("Report_bar").Range("A2:A500000"))
或
2) SUBTOTAL 103(如果想要Count则为102)
rCount = Application.WorksheetFunction.Subtotal(103, Sheets("Report_bar").Range("A2:A500000"))
有关参考项目的说明:
但您也可以选择AGGREGATE函数来忽略错误行和各种其他选择。看一下文档中的不同选择。
1)AGGREGATE(function_num,options,ref1,[ref2],...)
Function_num 2 = COUNT
Function_num 3 = COUNTA
选项5 =忽略隐藏的行
2)SUBTOTAL(function_num,ref1,[ref2],...)。
102 COUNT忽略隐藏的行
103 COUNTA忽略隐藏的行
编辑:
感谢@Jeeped注意到:“小计3被记录为103行忽略隐藏行,但实际上3和103都完全相同”