Ive表格使用少量标准过滤。然后我需要找到过滤的行数。所以为此我使用了以下代码。
rCount = Application.WorksheetFunction.Subtotal(3, Sheets("Report_bar").Range("A2:A500000"))
但rCount始终显示为零
我不明白我做错了什么。
这取决于您的要求和数据。您使用的是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工作完全相同”