根据指定要求一键拆分工作簿_第1页
根据指定要求一键拆分工作簿_第2页
根据指定要求一键拆分工作簿_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一键拆分工作簿并另10多万行,我让好几个同事一起分区间拆分,每个人都要用半个小时才能做好,而且保存501-1000做同样操作即可。1

1三个基础文Sub指定拆分行数量并另存为新文件()‘A区

代码1拆分过程代DimDimHangsAsLong,MaxRAsLong,ShCouAsLongDimBiaoTAsRange,ShsCouAsLong,CouAsLongDimWjlxAsString,Wj_OdjDimWb_OldAsWorkbook,Wb_NewAsWorkbook,ShAsWorksheetDimLjAsString,New_StrAsString,NewT_StrAsStringDimHouZ_StrAsString,RowCouAs‘B OnErrorResume HangsApplication.InputBox("HangsApplication.InputBox("100010001!Title:="拆分行量",Default:=1000,Type:=1)IfHangs<1OrHangs>1000IfMsgBox("1000行,或者选择【No】退出过程!vbYesNo过程提示vbNoExitHangs=10^3EndIfEndWjlxExcel97-03版文件(*.Xls),*.Xls,Excel07版文件(*.Xlsx),*.Xlsx,Excel文件Wj_OdjApplication.GetOpenFilename(FileFilter:=WjlxFilterIndex:=1Title:="打开MultiSelect:=False)IfErr.Number<>0ThenExitSubSetWb_Old=Workbooks.Open(Wj_Odj)Lj=Wb_Old.PathHouZ_Str=New_Str=Re ce(Wb_Old.Name,HouZ_Str,"")‘DWithWithSetBiaoT=Application.InputBox("请选择标题范围,选择整行或数行!","标题范围",.IfBiaoTIsNothingThenMsgBox您为选择区域,过程将退出!ExitSubMaxR=.Cells(Rows.Count,1).End(xlUp).RowShCou=IIf((MaxR-1ModHangs)=0,(MaxR-1)/Hangs,(MaxR-1)\Hangs+1)Cou=BiaoT.Rows.CountEnd yAlerts=ForShsCou=1ToNewT_Str=Lj&"\"&New_Str&"No"&Format((ShsCou-1)*Hangs+1,"ActiveWorkbook.SaveCopyAsNewT_StrSetWb_New=Workbooks.Open(NewT_Str) WithWb_New.Sheets(1)IfShsCou=1RowCou=MaxR-Hangs-RowCou=MaxR-Hangs-")&RowCouRowCou=Hangs*(ShsCou-EndIfCouCou EndNextWb_Old.CloseSaveChanges:=False Application.ScreenUpdating=TrueWb_Old.CloseSaveChanges:=False Application.ScreenUpdating=TrueMsgBoxNew_Str&&Hangs&行拆分为&ShsCou&个独立的文件!_&vbCr&"ExcelExcel查看!" EndAAs单词即可,如下示DimAsLong,HangsAsBOnErrorResumeNextVBA编程过程经常用到,它的作用是当过程在执行过程遇到错误时,会直接跳过C2IfHangs<1OrHangs>1000Then1~1000之间,如果超出了通IF1000。WjlxExcel=,,",Application.GetOpenFilename方法让用户选择指定的文件类型(Wjlx变量限制,并不可进行多文件选中,如图3所示,图4为选择要的文件类型和原文件。34IfErr.Number0ThenExitSubB区的容错语句,会继Err.Number0时,直接退出当前的过程。当用户选择了工作簿后,通过Set语句将Wb_Old变量;最后通过Rece(Wb_Old.Name,HouZ_Str,"")语句替换工作簿的后缀名获取该工作簿的名称并赋值给New_Str变量,New_Str变量的作用是将原名称作为后面的新工作簿名称标识用。DWithWithSetBiaoT=Application.InputBox("请选择标题范围,选择整行或数行!","标题范围.Rows("1:4").Address,IfBiaoTIsNothingThenMsgBox"您为选择区域,过程将退出!":ExitMaxR=.Cells(Rows.Count,ShCou=IIf((MaxR-1ModHangs)=0,(MaxR-1)/Hangs,(MaxR-1)\Hangs+Cou=BiaoT.Rows.Count'标题行End55的语句以打开的工作簿(Wb_Old)Sheets(1)Activate方法激活该工作表,后Application.InputBox6所示,可以通过该窗口选择需要的具体保留区6默认保留(选择)IfBiaoTIsNothingTRUE时,给予提示后退出过程,后面的语句将不再执MaxRRange.EndIifShCou变量;Cou变量则是用于获取当前语句中标题的行数量,E通过Application.ScreenUpdating属性关闭屏幕刷新功能,进行操作提速,再使用Application.DisyAlerts属性关ForShsCouShCou变量值为语句,ShsCou指数循环内的语句。NewT_Str变量为要保存的新工作簿名称变量,其通过Lj(保存路径、反斜杆、New_Str(原名称、"No"&Format((ShsCou-1)*Hangs+1," 后缀名HouZ_Str变量组合而成;每次循环都会变化的就Format((ShsCou-1)*Hangs+1语句,该语句为计算每次循环=WithWb_New.Sheets(1)Wb_NewActivate方法IfShsCou=1ShsCou1,1代表刚开始的位置。1RowCouMaxR-Hangs-BiaoT.Rows.Count语句获取最大行号减去拆分行数量减去行标题数量后剩余标题下一行开始,.Cells(Cou11).Offset(Hangs)Offset属性跳跃一定数量的行EntireRow属性选取该区域范围的行进行Clear(清除)操作。ARowCou1时相同的语句进行清BRowCouHangs*ShsCou1)语句来获取需要删除的区域的行量,ShsCou1为获取前一次的循环指数变量,并将该变量乘以拆分行量,就获得从标题行之后需要删除的行数量和;最后使用.Cells(BiaoT.Rows.Count+1,1).Resize(RowCou).EntireRow.DeleteClear(清除)操作。Cou变量进行改变——CouHangsCou值每循环一次就与拆分行数量相加,从而获取下FExcel程序。=MsgboxApplication.QuitExcel程序。无言:最重结果如图7所示。7为了让大家知道这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论