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

问题描述 投票:0回答:1

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

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

但rCount始终显示为零

我不明白我做错了什么。

vba excel-vba excel
1个回答
2
投票

这取决于您的要求和数据。您使用的是SUBTOTAL 3,即COUNTA

只是忽略隐藏的行:

1)使用带有3,5的AGGREGATE函数(如果需要,则使用2,5)

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

要么

2)SUBTOTAL与103(或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工作完全相同”

© www.soinside.com 2019 - 2024. All rights reserved.