下面说下在一个工作簿里把里面的一个工作表依据实际需求的条件内容,快速拆分成多个工作表方法。

1.打开excel文件,现在需要依据地区和国家这个条件,分别单独生成不同的工作表出来,最原始的方法是手动新建工作表一个一个的内容复制粘贴,这方法内容比较少是可行的,当倘若一个工作表里有几百个内容依据条件分别生成n个独立的工作表,工作效率低,不建议使用手动新建工作表复制粘贴内容;

2.右键工作表,选择查看代码打开VBA窗口,复制输入以下代码带窗口中;


Sub 工作表拆分2() '通过筛选方法完成需求,速度快,但当有合并单元格时就不能用。读者可以根据实际情况选用

Dim SplitCol As String, ColNum As Integer, HeadRows As Byte, arr, lastrow, i, ShtIndex, only As New Collection, Rng As Range

SplitCol = "D" '指定拆分条件所在列

HeadRows = 1 '指定标题行数,该区域不参与拆分

If HeadRows >= ActiveSheet.UsedRange.Rows.Count Then Exit Sub '如果指定的标题行大于已用区域行数则退出程序

ColNum = Cells(1, SplitCol).Column '将列标转换成数字

lastrow = ActiveSheet.UsedRange.Rows.Count '获取当前表已用区域的行数

arr = Range(Cells(HeadRows + 1, SplitCol), Cells(lastrow, SplitCol)).Value '将拆分列的数据赋与变量arr

On Error Resume Next

If ActiveSheet.FilterMode Then Cells.AutoFilter '如果处于筛选模式,那么去除筛选模式

For i = 1 To lastrow - HeadRows '遍历arr所有数据

'提取其中的不重复值

If Len(arr(i, 1)) > 0 Then only.Add CStr(arr(i, 1)), CStr(arr(i, 1))

Next i

ShtIndex = ActiveSheet.Index '获取当前表位置

On Error Resume Next

For i = 1 To only.Count

Debug.Print Sheets(only(i)).Name '获取与only对象中每个元素同名的工作表名(用意为判断是否存在该工作表)

If Err = 0 Then MsgBox "当前工作簿已存在与待拆分项目同名的工作表“" & only(i) & "”,暂无法拆分", 64, "友情提示": Exit Sub

Err.Clear

Next i

Application.ScreenUpdating = False '关闭屏幕更新,加快执行速度

Application.Calculation = xlCalculationManual '调为手动计算,加快执行速度

For i = 1 To only.Count '创建工作表,表的数量与表名由only对象中不重复值而定

Sheets.Add After:=Sheets(Sheets.Count) '创建

Sheets(Sheets.Count).Name = only(i) '命名

Sheets(ShtIndex).Rows("1:" & HeadRows).Copy Sheets(Sheets.Count).Cells(1, 1) '复制标题

Next i

Sheets(ShtIndex).Select '返回待拆分工作表

For i = 1 To only.Count '遍历Collection对象所有成员。Collection对象包括了所有拆分条件,即工作表名

'对拆分条件所在列进行筛选,筛选条件是Collection对象中的成员,本例中是部门名称

Range(Cells(HeadRows, SplitCol), Cells(lastrow, SplitCol)).AutoFilter Field:=1, Criteria1:=only(i)

Set Rng = Range(Cells(HeadRows + 1, SplitCol), Cells(Rows.Count, SplitCol).End(xlUp)).SpecialCells(xlCellTypeVisible).EntireRow '引用筛选后的数据(整行)

With Sheets(only(i)).UsedRange.Rows(Sheets(only(i)).UsedRange.Rows.Count + 1) '引用拆分后的工作表的已用区域下一行

Rng.Copy .Cells(1) '第一次复制,复制所有数据,仅取其格式

.Cells = Rng.Value '第二次复制,仅复制数值

End With

Next

Cells.AutoFilter '去除筛选模式

Application.ScreenUpdating = True '恢复屏幕更新

Application.Calculation = xlCalculationAutomatic '恢复自动计算

MsgBox "拆分完毕!", 64, "友情提示"

End Sub


3.修改好代码之后,按下快捷键F5键运行宏命令即可快速完成工作表的拆分;

4.宏命令说明,SplitCol = "a" '指定拆分条件所在列,这里以国家地区为拆分条件,它在D列,修改为SplitCol = "D" , 而HeadRows = 1 代表指定标题行数,该区域固定不进行拆分,即拆分出来的每个工作表的首行都会有一个一样的表头,拆分之后,之后再对拆分出来的工作表进行格式修饰下,按住shift键鼠标点击多选不要的工作表右键进行删除即可。

excel一个工作表拆分多个https://www.zhihu.com/video/1247151257426538496

excel首行固定_EXCEL 一个工作表如何快速拆分多个工作表的方法相关推荐

  1. 离开当前屏幕的判断方法_EXCEL 一个工作表如何快速拆分多个工作表的方法

    下面说下在一个工作簿里把里面的一个工作表依据实际需求的条件内容,快速拆分成多个工作表方法. 1.打开excel文件,现在需要依据地区和国家这个条件,分别单独生成不同的工作表出来,最原始的方法是手动新建 ...

  2. excel首行固定_基金定投只有高手才能玩?不,你用Excel就可以品职Python小白入门课堂...

    只有大神能玩的量化? 相信很多学金融,或对金融感兴趣的读者都会觉得量化是一个非常高深.需要很深数学功底的领域.但事实上,尽管有很多量化模型应用到了一些十分高深的数学模型,量化离我们的生活并没有那么的遥 ...

  3. Excel首行固定与重复值比较

    Excel2010 冻结窗口 1. 视图(view)--> 冻结窗口(Froze window),"冻结首行"(Froze head row). "冻结首列&quo ...

  4. WPF DataGrid 通过自定义表头模拟首行固定

    WPF DataGrid 通过自定义表头模拟首行固定 独立观察员 2021 年 9 月 25 日 最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了.问题是,UI 设计的表格是 ...

  5. excel 首行下示例格式_Excel条件格式示例

    excel 首行下示例格式 This week, there were a couple of Excel conditional formatting questions in the blog c ...

  6. listview 的首行固定内容标题且加粗显示(类似于表格的首行)的实现方法

    项目中有需求,将 listview 的首行固定内容标题(类似于表格的首行),效果如下: 实现方式如下: Adapter 的 getCount 中返回比数据集合多一行: @Overridepublic ...

  7. element表格固定某一行_ElementUI Table 首行固定

    需求描述:首行固定,吸附在表头下,数据多时其他行可以纵向滚动 方案一  两个表格拼凑 第一个表格展示头部和固定行 第二个表格展示其它数据 示意图如下 优点:固定行数没有限制 缺点:适用场景,仅横向 纵 ...

  8. Excel文件首行固定前n行固定首列固定前n列固定

    1.首行首列固定 2.前n行固定 或者 前n列固定 选中第n+1行 或者 第n+1列,在冻结窗口下来选项中,选 "冻结拆分窗格"命令. 3.固定前n行前m列.(此处以n=3,m=5 ...

  9. excel 按数据拆分 xlam_Excel表格把数据按类别快速拆分到不同工作表或工作簿

    Excel表格中数据的拆分和汇总是我们经常会遇到的问题,之前写过一篇利用VBA代码汇总多个工作簿的数据(文章最后有链接,有需要的朋友可以看一下).有时并不是所有的数据都能共享,这时就需要把数据按类别拆 ...

最新文章

  1. 一台机器上有几个java虚拟机
  2. PHP易混淆函数的区分
  3. asp.net DataGrid GridView 表格之选中行与获取选中行数据
  4. spring学习记录(一)
  5. 阅读react-redux源码(二) - createConnect、match函数的实现
  6. 【RK3399Pro学习笔记】八、ROS话题消息的定义与使用
  7. opencv 图像访问索引
  8. 利用开放定址法实现散列表的创建、插入、删除、查找操作_散列表和IO
  9. 程序员专属段子集锦 2/10
  10. 利用UICollectionView实现瀑布流
  11. 8.卷1(套接字联网API)---基本UDP套接字编程
  12. linux重定向文件容加时间,linux – Shell重定向和文件I / O持续时间
  13. (Quicker动作)MathType公式快速标红
  14. Vue加载组件、动态加载组件的几种方式
  15. python可用于数据抓取软件_不懂代码也能爬取数据?试试这几个工具
  16. 在Clouda中使用jQuery Mobile问题解决方案
  17. mysql ndb 测试_Mysql ndb_Cluster 测试环境搭建
  18. [翻译] 在 Overleaf 中上传项目
  19. 前端插件日常问题 整理
  20. Linux libusb

热门文章

  1. LeetCode Database知识点总结 - 1757
  2. 赚了!用Python写爬虫,月赚49K!
  3. excel中文名转为英文名,姓和名的第一个字母大写,中间留空格
  4. Redis - 缓存雪崩,缓存穿透,缓存击穿
  5. 可擦玻璃平顶的机器人_擦玻璃机器人登场,从此擦窗变简单
  6. 小程序毕业设计 基于微信4S店汽车维修保养小程序毕业设计开题报告功能参考
  7. win10+VS2017配置sophus
  8. java通过spire.doc实现word增加水印功能
  9. 网站被降权后应该如何恢复?
  10. 埃森哲硬件专利寻求增强区块链安全性和可扩展性