excel学习库

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

VBA按照列拆分为多个表

案例:一张数据表中多个月份的成绩,按月拆成单个表

二,插入以下代码,点击运行,根据需求输入要拆分的列

代码如下

Sub splitTableByColumnsValue()

'按列内容拆分表

Application.ScreenUpdating = False

Dim x As Integer '定义行数

Dim y As Integer '定义列数

x = 2

y = Int(InputBox("请输入拆分的列"))

'判断表是否存在,不存在则创建

Do While Sheet1.Cells(x, y) <> ""

flag = True

For Each sht In Worksheets

If Sheet1.Cells(x, y) & "" = sht.Name Then

flag = False

Exit For

End If

Next

'不存在时创建表

If flag Then Sheets.Add(after:=Sheets(Sheets.Count)).Name = Sheet1.Cells(x, y)

'遍历一次行数加一行

x = x + 1

Loop

'循环复制内容

For j = 2 To Sheets.Count

Sheet1.UsedRange.AutoFilter field:=y, Criteria1:=Sheets(j).Name

Sheet1.UsedRange.Copy Sheets(j).Range("A1")

Next

Sheet1.UsedRange.AutoFilter '取消筛选

MsgBox "完成"

Application.ScreenUpdating = True

End Sub

下图是分别按照不同条件进行2次拆分

思路:

  1. 对列的值和所有工作表名进行遍历,判断是表否存在,不存在,则新建工作表

  2. 以工作表的名称作为作为列的值进行筛选,并复制内容到对应的工作表


想要了解合并工作表可参考:

发表评论:

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

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