excel高级筛选怎么用_Excel教程:用高级筛选做超级拆分器

faff6440d465305c71e43b573b781f6d.png

5dad11fd8e04b456cfcc81f14a0bcc16.gif

520因爱而购,为爱放价

特推超级会员限时疯狂抢购

点击了解

支持微信公众号+小程序+APP+PC网站多平台学

亲爱的爱知趣小伙伴们,上次分享了用vba高级筛选做的超级查询器是不是很爽啊,就用了一行代码就能实现那么复杂的查询功能,真的是太厉害了!

今天继续用高级筛选做一个超级拆分器,

什么是超级拆分器?

就是把数据明细中按某一个字段进行拆分为分表!

先来看下演示效果吧,动画01

fa6c7b2e5a6d3a8911e0f5af7c73296f.gif

这操作简单又方便,代码会不会很多呀?

为了让大家都能学会,特意使用了高级筛选,为的就是减少代码量。

效率嘛。。。可能会比其它方法慢那么1,秒2秒的。

你在意多等这么点时间吗?在意的话就努力学,将来优化一下就会更快了

先来看代码图吧,我把结构框了一下,一共三大块!  图片01

6fdc42a47d32bdc7cf2749f4fb433c00.png

代码有点多,还是直接贴出来吧,后面再慢慢讲解

Option Explicit

Sub 拆分()

Dim xRow As Integer, iCount As Integer

Dim Sht As Worksheet

   Application.DisplayAlerts = False

   For Each Sht In Worksheets

       If Sht.Name <> "数据源" Then Sht.Delete

   Next

   Application.DisplayAlerts = True

   Application.ScreenUpdating = False

   With Worksheets("数据源")

       .Range("M2").ClearContents

       .Range("S1").Value = .Range("M1").Value

       .Range("A:G").AdvancedFilter xlFilterCopy, .Range("M1:M2"), .Range("S1"), True

       For xRow = 2 To .Range("S300").End(xlUp).Row

           iCount = iCount + 1

           .Range("M2").Value = .Cells(xRow, "S").Value

           Set Sht = Worksheets.Add(, Worksheets(xRow - 1))

           Sht.Name = .Cells(xRow, "S").Value

           .Range("A:G").AdvancedFilter xlFilterCopy, .Range("M1:M2"), Range("A1")

       Next

       .Activate

       .Range("M2").Clear

       .Range("S:S").Clear

   End With

   Application.ScreenUpdating = True

   If iCount > 0 Then

       MsgBox "工作表拆分完成,共计拆分:" & iCount & " 个工作表!", , "拆分完成"

   Else

       MsgBox "一个都没成功,可能是要拆分的内容太多,程序霸工了!", , "失败"

   End If

End Sub

第一块、删除 数据源 之外所有工作表,

Application.DisplayAlerts = False        作用是禁用警告,删除完了必须要启用哟!!

什么是警告?手工删除一个工作表就能看到警告了

第二块、拆分数据(又把它们拆成了三块)

7ceaf33fb5815f7c2b3b14756fb4fffe.png

这里使用了两次高级筛选

第一次筛选唯一值,前面还有两行代码,就是为筛选唯一值做准备用的。

筛选唯一值,需要将AdvancedFilter 的参数4设置为 True(上一次的查询器没有使用此参数)

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

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

第三部份,因为程序借用了其它单元格,所以运行完了当然要 毁尸灭迹 啦,不然多不好看呀!!

2d80d17e275de4298df7259d7f97a51f.png

最后那一块就是完成的提示了,没有提示也可以,就怕有时候不知道又点一次!!

反正也就那么几秒钟,也没啥,不过有提示的话会更为高大上!

这个拆分器怎么样?喜欢的话,赶紧动手练习吧!!

e768f4b76e0847e203f1e0a77a1d9741.gif

Excel学习交流群Q群:582326909 欢迎加入

(群共享,配套练习课件,提供答疑)

d9aaf600cbb3963d47edaf9b025b7a9e.png

今天的分享就到这,如果教程对大家有用,希望大家多多分享点赞支持小编哦!你的每一次点赞和转发都是支持小篇坚持原创的动力。 

推荐学习★★★★★

Excel教程:吐血整理,70个精选实用Excel技巧(↶点击学习)

Excel教程:100篇精华原创教程汇集!收藏慢慢学(点击学习)

推荐Office学习关注

(PPT WORD EXCEL)

4be4e99ec9404b03243087ec9550e475.png97c79dc20a58845aedf3c1b04ba147ee.png030aa601a99484bdac5dbd0f6ec71317.png

4a813d62d7516732842d8a349569063f.png

8a9f12e79ab250b76045096c93acf4f6.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值