添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
正直的芹菜  ·  wps vba6.3 ...·  1 月前    · 
强健的领带  ·  Java & PHP & ...·  11 月前    · 
直爽的哑铃  ·  sql loader - Oracle ...·  1 年前    · 
Excel VBA 按时间范围筛选和统计

Excel VBA 按时间范围筛选和统计

一、提问者需求

以2张表为例,在汇总表中统计每张表中的合计

(1)2021年4月份的BU方式个数,其它方式个数,及占比

(2)其它时间BU方式个数,其它方式个数,及占比

二、本文章配套视频

三、本文章配套课件

链接: pan.baidu.com/s/1yTHWTh

提取码:1234

(百度网盘不支持谷歌浏览器打开)

四、完成代码

Sub 筛选统计()
For Each 表 In Worksheets
    If 表.Name <> "汇总" Then
        行数 = Sheets(表.Name).Range("A1").CurrentRegion.Rows.Count - 1
        '分割日期,这一步你酌情考虑
        d = "2021年4月"
        开始 = DateSerial(Left(d, 4), Mid(Mid(d, 6), 1, Len(Mid(d, 6)) - 1), 1)
        first = DateSerial(Left(d, 4), Mid(Mid(d, 6), 1, Len(Mid(d, 6)) - 1) + 1, 1)
        n = first - 开始
        结束 = DateSerial(Left(d, 4), Mid(Mid(d, 6), 1, Len(Mid(d, 6)) - 1), n)
        '第一次筛选,筛选2021年4月日期的表
        Sheets(表.Name).Range("a1").CurrentRegion.AutoFilter
        Sheets(表.Name).Range("a1").CurrentRegion.AutoFilter Field:=2, Criteria1:=">=" & 开始, Criteria2:="<=" & 结束
        '计算可见单元格
        Set r1 = Sheets(表.Name).AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        For x = 1 To r1.Areas.Count
            n1 = n1 + r1.Areas(x).Rows.Count
        '第二次筛选,筛选BU
        Sheets(表.Name).Range("a1").CurrentRegion.AutoFilter Field:=3, Criteria1:="BU"
        Set r2 = Sheets(表.Name).AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        For x = 1 To r2.Areas.Count
            n2 = n2 + r2.Areas(x).Rows.Count
        '第三次筛选,筛选全部BU
        Sheets(表.Name).Range("a1").CurrentRegion.AutoFilter
        Sheets(表.Name).Range("a1").CurrentRegion.AutoFilter Field:=3, Criteria1:="BU"
        Set r3 = Sheets(表.Name).AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        For x = 1 To r3.Areas.Count
            n3 = n3 + r3.Areas(x).Rows.Count
        总行数 = 总行数 + 行数
        红 = 红 + n2 - 1
        黄 = 黄 + n1 - 1
        蓝 = 蓝 + n3 - 1
        n1 = 0
        n2 = 0
        n3 = 0
    End If
Set 总表 = Sheets("汇总")
总表.Range("B3") = 红
总表.Range("D3") = 黄 - 红
总表.Range("C3") = 红 / (红 + 黄 - 红)