首页 > Office专区 > Excel教程 >

Excel:用高级筛选做超级拆分器

来源:互联网 2023-02-20 18:46:21 版权归原作者所有,如有侵权,请联系我们

什么是超级拆分器?就是把数据明细中按某一个字段进行拆分为分表!先来看代码图吧,我把结构框了一下,一共三大块!Aaa办公区 - 实用经验教程分享!

Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

方法/步骤

  • 1

    先来看代码图吧,我把结构框了一下,一共三大块!Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 2

    代码有点多,还是直接贴出来吧,后面再慢慢讲解Aaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Option ExplicitAaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Sub 拆分()Aaa办公区 - 实用经验教程分享!

    Dim xRow As Integer, iCount As IntegerAaa办公区 - 实用经验教程分享!

    Dim Sht As WorksheetAaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Application.DisplayAlerts = FalseAaa办公区 - 实用经验教程分享!

    For Each Sht In WorksheetsAaa办公区 - 实用经验教程分享!

    If Sht.Name > "数据源" Then Sht.DeleteAaa办公区 - 实用经验教程分享!

    NextAaa办公区 - 实用经验教程分享!

    Application.DisplayAlerts = TrueAaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Application.ScreenUpdating = FalseAaa办公区 - 实用经验教程分享!

    With Worksheets("数据源")Aaa办公区 - 实用经验教程分享!

    .Range("M2").ClearContentsAaa办公区 - 实用经验教程分享!

    .Range("S1").Value = .Range("M1").ValueAaa办公区 - 实用经验教程分享!

    .Range("A:G").AdvancedFilter xlFilterCopy, .Range("M1:M2"), .Range("S1"), TrueAaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    For xRow = 2 To .Range("S300").End(xlUp).RowAaa办公区 - 实用经验教程分享!

    iCount = iCount 1Aaa办公区 - 实用经验教程分享!

    .Range("M2").Value = .Cells(xRow, "S").ValueAaa办公区 - 实用经验教程分享!

    Set Sht = Worksheets.Add(, Worksheets(xRow - 1))Aaa办公区 - 实用经验教程分享!

    Sht.Name = .Cells(xRow, "S").ValueAaa办公区 - 实用经验教程分享!

    .Range("A:G").AdvancedFilter xlFilterCopy, .Range("M1:M2"), Range("A1")Aaa办公区 - 实用经验教程分享!

    NextAaa办公区 - 实用经验教程分享!

    .ActivateAaa办公区 - 实用经验教程分享!

    .Range("M2").ClearAaa办公区 - 实用经验教程分享!

    .Range("S:S").ClearAaa办公区 - 实用经验教程分享!

    End WithAaa办公区 - 实用经验教程分享!

    Application.ScreenUpdating = TrueAaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    If iCount > 0 ThenAaa办公区 - 实用经验教程分享!

    MsgBox "工作表拆分完成,共计拆分:" & iCount & " 个工作表!", , "拆分完成"Aaa办公区 - 实用经验教程分享!

    ElseAaa办公区 - 实用经验教程分享!

    MsgBox "一个都没成功,可能是要拆分的内容太多,程序霸工了!", , "失败"Aaa办公区 - 实用经验教程分享!

    End IfAaa办公区 - 实用经验教程分享!

    End SubAaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 3

    第一块、删除 数据源 之外所有工作表,Aaa办公区 - 实用经验教程分享!

    Application.DisplayAlerts = False作用是禁用警告,删除完了必须要启用哟!!Aaa办公区 - 实用经验教程分享!

    什么是警告?手工删除一个工作表就能看到警告了Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 4

    第二块、拆分数据(又把它们拆成了三块)Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 5

    这里使用了两次高级筛选Aaa办公区 - 实用经验教程分享!

    第一次筛选唯一值,前面还有两行代码,就是为筛选唯一值做准备用的。Aaa办公区 - 实用经验教程分享!

    筛选唯一值,需要将AdvancedFilter的参数4设置为True(上一次的查询器没有使用此参数)Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 6

    第二部分循环拆分数据,上一次的超级查询器里我们知道了高级筛选是需要有条件的,所以这循环的作用就不停的往条件区域中(M2单元格)写入条件,然后再把数据筛选到目标位置。Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 7

    因为我们是要把结果弄到新工作表中,所以在筛选之前要新建工作表,并且设置好工作表名称 ,然后再把数据筛选出去,这样才能直接得到我们要的结果(这是程序流程)

    Aaa办公区 - 实用经验教程分享!

    Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 8

    第三部份,因为程序借用了其它单元格,所以运行完了当然要 毁尸灭迹 啦,不然多不好看呀!!Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 9

    个人建议Aaa办公区 - 实用经验教程分享!

    最后那一块就是完成的提示了,没有提示也可以,就怕有时候不知道又点一次!!反正也就那么几秒钟,也没啥,不过有提示的话会更为高大上!Aaa办公区 - 实用经验教程分享!

    Excel:用高级筛选做超级拆分器Aaa办公区 - 实用经验教程分享!

  • 9本页面未经许可获取自百度经验
  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Aaa办公区 - 实用经验教程分享!


    标签: excel高级筛选超级

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号