excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA系列之通过筛选拆分数据至多张工作表

在如下的示例数据表中,分别把相应的数据拆分至以班级命名的多张工作表中。 先来录制一个筛选动作的宏。 1. 点击“开发工具”下的录制宏,然后“确定”。2. 点击“开始”的“排序和筛选”下的“筛选”按钮。3. 点击“班级”列的筛选按钮,筛选“A班”的数据,然后“确定”。4. 停止录制,然后打开Visual Basic,查看代码如下。Sub 宏1() ' ' 宏1 宏 ' ' Selection.AutoFilter ActiveSheet.Range("$A$1:$F$27").AutoFilter Field:=2, Criteria1:="A班" End Sub 5. 新建一个过程test,来看一下Selection.AutoFilter的作用。Sub test() Selection.AutoFilter End Sub 这行代码的作用是执行之后就会出现筛选的按钮,再次执行则取消筛选。 6. ActiveSheet.Range("$A$1:$F$27").AutoFilter Field:=2, Criteria1:="A班"这一段代码: 1)当前活动的工作表的A1至F27单元格范围; 2)进行筛选; 3)参数是第二列,条件是“A班”。 接下来,利用上面的宏代码来完成把各班级的数据分别拆分至其对应的工作表中。 1. 新建一个过程“筛选拆分”,添加一个for循环,从第二张工作表开始循环至最后一张。Sub 筛选拆分() Dim i As Integer For i = 2 To Sheets.Count Next End Sub 2. 将上面录制的宏中筛选动作的代码复制到该过程中,并做一些调整。Sub 筛选拆分() Dim i As Integer For i = 2 To Sheets.Count Sheet1.Range("A1:F27").AutoFilter Field:=2, Criteria1:=Sheets(i).Name Sheet1.Range("A1:F27").Copy Sheets(i).Range("A1") Next End Sub 3. 将筛选按钮的代码Selection.AutoFilter放在for循环外面,在for循环中已开启了筛选按钮,结束循环后则取消筛选按钮。Sub 筛选拆分() Dim i As Integer For i = 2 To Sheets.Count Sheet1.Range("A1:F27").AutoFilter Field:=2, Criteria1:=Sheets(i).Name Sheet1.Range("A1:F27").Copy Sheets(i).Range("A1") Next Sheet1.Range("A1:F27").AutoFilter End Sub 4. 执行以上代码后,即可将数据快速拆分至相应的工作表。以上示例只是用于演示,实际应用场景请根据自己的需要进行相应的设计或调整。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接