不同于《Excel·VBA按列拆分工作表、工作簿》按某列的值对工作表拆分,仅按固定列数拆分工作表单独保存为工作簿,类似于《Excel·VBA按行拆分工作表》

Sub 工作表整列拆分为工作簿()'当前工作表ws按固定列数整列拆分为多个工作簿,文件保存在当前工作簿wb同一文件夹下单独文件夹内'保存文件夹以wb命名,拆分后的wb以拆分列首行内容命名;ws开头行列不能为空Dim arr, fso As Object, title_rng As Range, rng As Range, save_path$, file_name$Dim title_col&, num_col&, i&
'--------------------参数填写:title_col、num_col,大于0的整数title_col = 1    '表头列数,每个拆分后的sheet都保留num_col = 1    '固定拆分列数,整列拆分,不能完全拆分的,多余列数单独Set fso = CreateObject("Scripting.FileSystemObject"): tm = TimerApplication.ScreenUpdating = False  '关闭屏幕更新,加快程序运行Application.DisplayAlerts = False   '不显示警告信息With ActiveSheetws_name = .Namesave_path = .Parent.path & "\拆分表"  '保存拆分后的表格保存路径If Not fso.FolderExists(save_path) Then fso.CreateFolder (save_path)  '创建文件夹max_row = .UsedRange.Rows.Count: max_col = .UsedRange.Columns.CountSet title_rng = .Cells(1, 1).Resize(max_row, title_col)For i = title_col + 1 To max_col Step num_colIf num_col > 1 Thenarr = .Cells(1, i).Resize(1, num_col)arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arr))file_name = Join(arr, "") & ".xlsx"ElseIf num_col = 1 Thenfile_name = .Cells(1, i) & ".xlsx"End IfSet rng = Union(title_rng, .Cells(1, i).Resize(max_row, num_col))Set write_wb = Workbooks.Add  '新建工作簿,拆分文件With ActiveSheet.Name = ws_namerng.Copy .Cells(1, 1)End WithSet rng = Nothingwrite_wb.SaveAs filename:=save_path & "\" & file_namewrite_wb.Close (False)NextEnd WithApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueDebug.Print "工作表已拆分完成,累计用时" & Format(Timer - tm, "0.00")  '耗时
End Sub

举例


参数:表头列数title_col = 1、按每1列拆分num_col = 1,结果

参数:表头列数title_col = 1、按每2列拆分num_col = 2,结果

Excel·VBA工作表整列拆分为工作簿相关推荐

  1. excel首行固定_EXCEL 一个工作表如何快速拆分多个工作表的方法

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

  2. excel将一个工作表根据条件拆分成多个工作表图文教程

    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表. 注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为"数据源&qu ...

  3. Excel把一个工作表根据条件拆分成多个工作表

    Excel 2016 参考https://jingyan.baidu.com/article/d7130635071d2313fdf47585.html 有时候需要在一个工作簿中建立多个工作表,并且需 ...

  4. 用python将一个excel工作表根据条件拆分成多个工作表(只用openpyxl库)

    用python将一个excel工作表根据条件拆分成多个工作表(只用openpyxl库) 最近在学python,刚刚了解了openpyxl库,就想写点实用的功能.比如按某列值拆分工作表. 先放代码 fr ...

  5. excel将一个工作表根据条件拆分成多个sheet工作表

    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表.注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为"数据源&quo ...

  6. excel将一个工作表根据条件拆分成多个工作簿

    Function FilePicker() As String'新建一个对话框对象 'MsoFileDialogType 可为以下 MsoFileDialogType 常量之一. 'msoFileDi ...

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

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

  8. php按一列拆分excel表格,excel表格要根据某一列数据拆分-excel怎么按照某一列拆分表格...

    求助:一张excel表,希望按照某列内容(比如某列为... 是把这一列进行筛选或者排序,然后不断制到新表中,如果较多,可以VBA进行自动的复制和新建文件. 如果需要代劳,可以[百度云盘](一个使用百度 ...

  9. print python excel分隔_办公自动化 Python 小工具,对Excel文件,按某一列拆分成多个Excel文件或sheet...

    使用pandas.xlwings.os 库文件,对Excel文件,按某一列拆分成多个Excel文件或sheet,提高工作效率. # -*- coding: utf-8 -*- "" ...

最新文章

  1. 关于svn更新失败,clearup异常解决
  2. 不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***
  3. linux重新加载php.ini,linux修改php.ini后重新加载配置文件命令
  4. C/C++学习之路: STL
  5. 在php中构造函数的作用,php构造函数的作用
  6. html实现拖拽排序,简单的jquery拖拽排序效果实现代码
  7. Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(2)
  8. 【Flink】Flink Association with remote system akka Connection refused
  9. CYQ.Data V4.5.5 版本发布[顺带开源Emit编写的快速反射转实体类FastToT类]
  10. IDEA修改SVN地址
  11. keras pytorch_使用PyTorch重新创建Keras功能API
  12. 如何写好工作周报?工作周报模板
  13. 【Renpy】renpy游戏引擎制作的游戏拆包及汉化教程
  14. 破天服务器的系统,《新破天一剑》束缚系统
  15. 数字电路基础(四) 数据分配器、数据选择器和数值比较器
  16. cesium接入加载倾斜摄影(cesium篇.16)
  17. 冬至幻灵怎么修改服务器名字,冬至幻灵如何给自己加元宝
  18. 《丑奴儿书博山道中壁》
  19. 【Java+JSP+MySql】12306购票系统(五)购买车票
  20. 使用Python读取raw格式图像并显示

热门文章

  1. HTTPS双向认证原理
  2. Linux vim 如何实现多行注释与取消多行注释
  3. 生物化学 SY001盘尼西林
  4. 小米手机1999元叫板iPhone
  5. 循环可视化文件夹下的所有PCD文件
  6. 一探前端开发中的JS调试技巧
  7. 你知道这把神奇的KAZbrella伞么
  8. 深入理解Spring IOC和AOP
  9. IoC 和 AOP 的理解
  10. 笔记本玩游戏限30帧的解决办法