EXCEL 如何制作瀑布图,对于有些数据做图表非常适合用瀑布图,比如生活开支......
Excel:用高级筛选做超级拆分器
什么是超级拆分器?就是把数据明细中按某一个字段进行拆分为分表!先来看代码图吧,我把结构框了一下,一共三大块!
方法/步骤
先来看代码图吧,我把结构框了一下,一共三大块!
代码有点多,还是直接贴出来吧,后面再慢慢讲解
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作用是禁用警告,删除完了必须要启用哟!!
什么是警告?手工删除一个工作表就能看到警告了
第二块、拆分数据(又把它们拆成了三块)
这里使用了两次高级筛选
第一次筛选唯一值,前面还有两行代码,就是为筛选唯一值做准备用的。
筛选唯一值,需要将AdvancedFilter的参数4设置为True(上一次的查询器没有使用此参数)
第二部分循环拆分数据,上一次的超级查询器里我们知道了高级筛选是需要有条件的,所以这循环的作用就不停的往条件区域中(M2单元格)写入条件,然后再把数据筛选到目标位置。
因为我们是要把结果弄到新工作表中,所以在筛选之前要新建工作表,并且设置好工作表名称 ,然后再把数据筛选出去,这样才能直接得到我们要的结果(这是程序流程)
第三部份,因为程序借用了其它单元格,所以运行完了当然要 毁尸灭迹 啦,不然多不好看呀!!
个人建议
最后那一块就是完成的提示了,没有提示也可以,就怕有时候不知道又点一次!!反正也就那么几秒钟,也没啥,不过有提示的话会更为高大上!
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!