如何利用VBA实现对数据筛选后的行数统计

 时间:2024-10-16 11:16:41

1、输入测试数据,如下图所示:

如何利用VBA实现对数据筛选后的行数统计

2、选中B列,点击 数据|筛选,设置筛选条件,Grade=2,点确定

如何利用VBA实现对数据筛选后的行数统计

3、查看状态栏,在10条记录中找到5个

如何利用VBA实现对数据筛选后的行数统计

4、如何用VBA实现呢?VBA中没有提供直接访问这个消息的方式,需要用到SpecialCells(xlCellTypeVisible),其具体代码如下:

如何利用VBA实现对数据筛选后的行数统计

5、[a1].CurrentRegion代表A1单元格开始的数据区域,[a1].CurrentRegion.SpecialCells(xlCe造婷用痃llTypeVisible)代表数据区域的可见单元格区域,这个区域是非连续区域,所以直接用Rows.Count属性,相当于[a1].CurrentRegion.SpecialCells(xlCellTypeVisible).Areas(1).Rows.Count,筛选后第一个可见单元格区域引用为A1:C1,所以返回的结果1。

6、代码过程RowCntAfterFilter中,使用For Each循环结爿瑰鲚母构遍历Areas集合,累加每个区域的数据行,结果保存在变量lngRowCnt 中。这个统计中,包含了标题行,因此最后显示结果时,需要使用lngRowCnt -1。

7、运行,结果跟前面相同,效果如图:

如何利用VBA实现对数据筛选后的行数统计
  • excel VBA怎么判断某个单元格的内容变化
  • 如何用VBA实现多条件筛选后求和
  • 如何在Excel中使用INDIRECT跨表引用
  • 怎样用excel的vba宏代码删除列
  • [VBA入门] 3、VBA如何表示相邻单元格区域?
  • 热门搜索
    1~6年级一等奖手抄报 防溺水手抄报 三爱三节手抄报 安全在我心中手抄报 感恩手抄报 一年级手抄报简单又好 垃圾分类手抄报内容 爱国手抄报简单又漂亮 英语手抄报 手抄报模板