VBA编程常见实例_第1页
VBA编程常见实例_第2页
VBA编程常见实例_第3页
VBA编程常见实例_第4页
VBA编程常见实例_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、将excel汇总好的表,按字段拆分为多sheet的情况:如下图:匚总武波分公司黄冈分公司襄阳分公司削州分公司宜昌分公司孝领公司十堰分公司代码如下:Subcfs()DimGSArr()AsString'公司名称清单DimRcaAsInteger'A列数据行数DimiAsIntegerDimSnAsStringSn=ActiveSheet.NameRca=Columns("A:A").End(xlDown).Row ,按第A列数据拆分,且第一行无合并单元格ReDimGSArr(1To1)GSArr(1)=Cells(2,1)Fori=3ToRcaIfIsError(Application.Match(Cells(i,1),GSArr,0))ThenReDimPreserveGSArr(1ToUBound(GSArr)+1)GSArr(UBound(GSArr))=Cells(i,1)EndIfNextIfActiveSheet.AutoFilterMode=FalseThenRows("1:1").AutoFilter日seIfActiveSheet.FilterMode=TrueThenActiveSheet.ShowAllDataEndIfFori=1ToUBound(GSArr)ActiveSheet.Cells.AutoFilterField:=1,Criteria1:=GSArr(i)Sheets.AddAfter:=Sheets(Sheets.Count)ActiveSheet.Name=GSArr(i)Sheets(Sn).Cells.CopyActiveSheet.CellsSheets(Sn).ActivateNextActiveSheet.Cells.AutoFilterEndSub2、将汇总的好的EXCEL表按字段拆分为多个工作薄tr省财务共享服务口心201679/1214:57MicrosoftExcel...C武汉分公司2016/9/1214:57MicrosoftExcel...1;匾密诊一2016/9/1214:4-0MicrosoftExcel...空时者网金熟2016/9/12141&MicrosoftExcel...ET省公司网发部201679/1214:1&MicrosoftExcel...正省公司网运部2016/9/121416MicrosoftExcel...IEET省号百公司201679/1214116IVlicr&EoftExce-I...式ET值惜值中心2016/9/1214:15MicrosoftExcel...IECT省终局中心2016/9/1214:16MicrosoftExcel...代码如下:SubCFGZB()DimmyRangeAsVariantDimmyArrayDimtitleRangeAsRangeDimtitleAsStringDimcolumnNumAsIntegermyRange=Application.InputBox(prompt:="请选择标题行:",Type:=8)myArray=WorksheetFunction.Transpose(myRange)SettitleRange=Application.InputBox(prompt:="i请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名””,Type:=8)title=titleRange.ValuecolumnNum=titleRange.ColumnApplication.ScreenUpdating=FalseApplication.DisplayAlerts=FalseDimi&,Myr&,Arr,num&Dimd,kFori=Sheets.CountTo1Step-1IfSheets(i).Name<>"数据源"Then '待拆分的表sheet名为:数据源Sheets(i).DeleteEndIfNextiSetd=CreateObject("Scripting.Dictionary")Myr=Worksheets("数据源").UsedRange.Rows.CountArr=Worksheets("数据源").Range(Cells(2,columnNum),Cells(Myr,columnNum))Fori=1ToUBound(Arr)d(Arr(i,1))=""Nextk=d.keysFori=0ToUBound(k)Setconn=CreateObject("adodb.connection")conn.Open"provider=microsoft.ace.oledb.12.0;extendedproperties=excel8.0;datasource="&ThisWorkbook.FullName,2013版连接字符Sql="select*from[数据源$]where"&title&"='"&k(i)&"'"DimNowbookAsWorkbookSetNowbook=Workbooks.AddWithNowbookWith.Sheets(1).Name=k(i)Fornum=1ToUBound(myArray).Cells(1,num)=myArray(num,1)Nextnum.Range("A2").CopyFromRecordsetconn.Execute(Sql)EndWithEndWithThisWorkbook.ActivateSheets(1).Cells.SelectSelection.CopyWorkbooks(Nowbook.Name).ActivateActiveSheet.Cells.SelectSelection.PasteSpecialPaste:=xlPasteFormats,Operation:=xlNone,_SkipBlanks:=False,Transpose:=FalseApplication.CutCopyMode=FalseNowbook.SaveAsThisWorkbook.Path&"\"&k(i)Nowbook.CloseTrueSetNowbook=NothingNexticonn.CloseSetconn=NothingApplication.DisplayAlerts=TrueApplication.ScreenUpdating=TrueEndSub3、将含有多sheet的一个工作表,按sheet名拆分为工作表sheet3SheetlSheets研Sheetl2016^/1211:15MicrosoftExcel...24KE研Sheets2016/9/1^11:15MicrosoftExcel...24KE量sheets2016/9/1211:15MicrosoftExcel...64KE司待拆分201&/9/1215:57Micro&oftExcel...75KB代码如下:PrivateSub分拆工作表()DimshtAsWorksheetDimMyBookAsWorkbookSetMyBook=ActiveWorkbookForEachshtInMyBook.Sheetssht.CopyActiveWorkbook.SaveAsFilename:=MyBook.Path& "\" &sht.Name,FileFormat:=xlNormal '将工作簿另存为EXCEL默认格式ActiveWorkbook.CloseNextMsgBox”文件已经被分拆完毕!”EndSub4,、将多个工作薄合并为一个多sheet的工作薄国二〕Hgdx_Excel(l)igdx_Excel(Z)^^1zgdk_Excel(3)团三〕ngdx_ExceI(4)国-igdx_Excel(5)egdk_Ekc.cI(&J的三〕sgdx_ExesI(7)^=1igdx_Excel(3)zgdx_Excel(1)|zgdx_£^el(2jzgdx_Excel(3)|igdx_Excel(4)|zgdx_Excel(5) zgdxExcel(6] …代码如下:SubBooks2Sheets()’定义对话框变量DimfdAsFileDialogSetfd=Application.FileDialog(msoFileDialogFilePicker)‘新建一个工作簿DimnewwbAsWorkbookSetnewwb=Workbooks.AddWithfdIf.Show=-1Then‘定义单个文件变量DimvrtSelectedItemAsVariant’定义循环量DimiAsIntegeri=1’开始文件检索ForEachvrtSelectedItemIn.SelectedItems’打开被合并工作簿DimtempwbAsWorkbookSettempwb=Workbooks.Open(vrtSelectedItem)’复制工作表tempwb.Worksheets(1).CopyBefore:=newwb.Worksheets(i)’把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsxnewwb.Worksheets(i).Name=VBA.Replace(tempwb.Name,".xls","")‘关闭被合并工作簿tempwb.CloseSaveChanges:=Falsei=i+1NextvrtSelectedItemEndIfEndWithSetfd=NothingEndSub5、将含有多个sheet的工作表内容信息汇总至一个sheet中SubCombine()DimJAsIntegerOnErrorResumeNextSheets(1).SelectWorksheets.AddSheets(1).Name="Combined"Sheets(2).ActivateRange("A1").EntireRow.SelectSelection.CopyDestination:=Sheets(1).

温馨提示

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

评论

0/150

提交评论