当尝试查找过滤的行计数时,CountA的小计总是返回0

时间:2018-03-05 07:06:37

标签: vba excel-vba excel

Ive表格,使用少量标准过滤。然后我需要找到filterd行计数。所以为此我使用了以下代码。

rCount = Application.WorksheetFunction.Subtotal(3, Sheets("Report_bar").Range("A2:A500000"))

但rCount始终显示为零

我明白我做错了什么。

1 个答案:

答案 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都完全相同”