- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
excel VBA之拆分工作簿
分两步进行拆分,先根据指定列拆分成不同的工作表,再把工作表转成独立的工作簿。注意拆分时,将身份证转成文本格式。
1.根据指定列拆分成不同的工作表(标题行默认为1,根据N列拆分)
Sub拆分() 逐行复制,速度偏慢,通用性好
Dim SplitCol As String, ColNum As Integer, HeadRows As Byte, arr, lastrow, i, ShtIndex, only As New Collection
SplitCol = N 指定拆分条件所在列。可以根据实际情况修改列标
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
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 = HeadRows + 1 To lastrow 逐行复制数据
If Len(Cells(i, SplitCol)) 0 Then 排除空值
With Sheets(Cells(i, SplitCol).Text).UsedRange.Rows(Sheets(Cells(i, SplitCol).Text).UsedRange.Rows.Count + 1)
Rows(i).Copy .Cells(1) 第一次复制,复制所有数据,仅取其格式
.Cells = Rows(i : i).Value 第二次复制,仅复制数值
End With
End If
Next i
Application.ScreenUpdating = True 恢复屏幕更新
Application.Calculation = xlCalculationAutomatic 恢复自动计算
MsgBox 拆分完毕!, 64, 友情提示
End Sub
2.转成独立的工作簿
Sub 工作簿拆分()
On Error Resume Next
Dim Pathstr As String, i As Long, ActiveWB As String
With
您可能关注的文档
- 2017会计继续教育试题及答案(二).doc
- 2017处级领导干部履职尽责工作总结.doc
- 2017奉贤区中考物理一模含答案.doc
- 2017年-2018年小学部教务工作总结.doc
- 2017年6月份“以案释法”案例四件(李沧).doc
- 2017年二年级错乱句子的排序方法及练习.docx
- 2017年创文总结.doc
- 2017年学校年鉴.doc
- 2017年小学六年级上册英语时态专项习题.doc
- 2017年幼儿园寒假通知书.doc
- 制动系统的特点项目一58课件.pptx
- 直接工程费价外运杂费填料费铁路工程施工组织与概预算78课件.pptx
- 主备用控制中心的切换LCF300型25课件.pptx
- 智能交通系统的相关技术任务三车辆自动驾驶技术王怡安徽交通6.pptx
- 智能交通监控系统任务三城市交通诱导系统诱导系统的组成王怡安.pptx
- 智能交通监控系统任务二城市交通监控系统王怡安徽交通67课件.pptx
- 直升机的特点和分类空气动力学基础与飞行原理86课件.ppt
- 直升机的飞行性能空气动力学基础与飞行原理67课件.ppt
- 职业形象塑造3职业教育国际邮轮乘务管理专业教学化妆与形象设.pptx
- 轴向拉压杆件的线应变和胡克定律张亚琴河北交通52课件.pptx
最近下载
- 基于智能化技术的供水管网漏点判定与修复管理模式.pptx
- 2023-2024学年沪科版(2019)高中信息技术必修二第三单元项目五《规划并连接数字家庭系统的网络——组建小型信息系统网络(一)》说课稿.docx VIP
- 北京市城镇供水厂生产安全事故隐患目录.pdf VIP
- 业主委员会委员候选人推荐表.docx VIP
- NB-T35003-2023水电工程水情自动测报系统技术规范.pdf VIP
- 2025年高考英语陕西卷含解析及答案.docx VIP
- 2025年管道直饮水项目可行性研究报告.docx
- 地理信息安全在线培训考试题目完整版答案.docx
- 幼儿园区域活动的实施策略.pptx
- 10kV及以下变电所设计规范.pdf VIP
文档评论(0)