VBA编程常见实例_第1页
VBA编程常见实例_第2页
VBA编程常见实例_第3页
VBA编程常见实例_第4页
VBA编程常见实例_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、1、将excel汇总好的表,按字段拆分为多sheet的情况:如下列图:武汶分公言1黄冈分公司襄E日分公司创阴分公司宜昌分公司孝博分公司十堰分公司代码如下:Sub cfs()Dim GSArr() As String公司名称清单Dim Rca As Integer 'A 列数据行数Dim i As IntegerDim Sn As StringSn = ActiveSheet.NameRca = Columns("A:A").End(xlDown).Row按第A列数据拆分,且第一行无合并单元格ReDim GSArr(1 To 1)GSArr(1) = Cells(2,

2、 1)For i = 3 To RcaIf IsError(Application.Match(Cells(i, 1), GSArr, 0) Then ReDim Preserve GSArr(1 To UBound(GSArr) + 1) GSArr(UBound(GSArr) = Cells(i, 1)End IfNextIf ActiveSheet.AutoFilterMode = False ThenRows("1:1").AutoFilterElseIf ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllD

3、ataEnd IfFor i = 1 To UBound(GSArr)ActiveSheet.Cells.AutoFilter Field:=1, Criteria1:=GSArr(i)Sheets.Add After:=Sheets(Sheets.Count)ActiveSheet.Name = GSArr(i)Sheets(Sn).Cells.Copy ActiveSheet.CellsSheets(Sn).ActivateNextActiveSheet.Cells.AutoFilterEnd Sub2、将汇总的好的EXCELS按字段拆分为多个工作薄0首叮翁共享I胳口心 肥盒双分公司年省网

4、瘾能O耆公司网发解 Q省公司网运手 口菖号百公司Q -瑁瑁值日心Q省终其口心2022/9/12 14:572022/9/12 14; 572022/9/12 14胸2022/9/12 14162022/5/12 1416202279/12 14:162022;9/12 14162022/9/12 14:16202279/12 1416Microsoft Exce Microsoft Exce Microsoft Exce Microsoft Exce Microsoft Exce Microsoft Exce Microsoft Facet Microsoft Exce Microsoft E

5、xce代码如下:Sub CFGZB()Dim myRange As VariantDim myArrayDim titleRange As RangeDim title As StringDim columnNum As IntegermyRange = Application.InputBox(prompt:=" 请选择标题行:", Type:=8)myArray = WorksheetFunction.Transpose(myRange)且为Set titleRange = Application.InputBox(promptk"请选择拆分的表头,必须是第一

6、行, 一个单元格,如:“姓名 ", Type:=8)title = titleRange.ValuecolumnNum = titleRange.ColumnApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDim i&, Myr&, Arr, num&Dim d, kFor i = Sheets.Count To 1 Step-1If Sheets(i).Name <> "数据源"Then待拆分的表sheet名为:数据源Sheets(i).De

7、leteEnd IfNext iSet d = CreateObject("Scripting.Dictionary")Myr = Worksheets("数据源").UsedRange.Rows.CountArr = Worksheets.'数据源").Range(Cells(2, columnNum), Cells(Myr, columnNum)For i = 1 To UBound(Arr)d(Arr(i, 1)=""Nextk = d.keysFor i = 0 To UBound(k)Set conn =

8、CreateObject("adodb.connection")conn.Open "provider=microsoft.ace.oledb.12.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName ' 201版连接字符Sql = "select * from 数据源 $ where " & title & " = '" & k(i) & ", Dim Nowb

9、ook As Workbook Set Nowbook = Workbooks.Add With NowbookWith .Sheets(1) .Name = k(i) For num = 1 To UBound(myArray) .Cells(1, num) = myArray(num, 1) Next num.Range("A2").CopyFromRecordset conn.Execute(Sql) End With End With ThisWorkbook.ActivateSheets(1).Cells.Select Selection.CopyWorkbook

10、s(Nowbook.Name).ActivateActiveSheet.Cells.SelectSelection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=FalseApplication.CutCopyMode = FalseNowbook.SaveAs ThisWorkbook.Path & "" & k(i) Nowbook.Close True Set Nowbook = NothingNext i conn.Clos

11、e Set conn = Nothing Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub3、将含有多sheet的一个工作表,按 sheet名拆分为工作表sheetS Sheetl Sheet?国-Sheetl2022/9/12 11:15Microsoft Ex«l24 KB国5heet22022/9/12 11:15Microsoft Excel .24 KB国 sheets2022/9/12Microsoft Excel »»64 KB演商分2022/9/12

12、 15:57Microsoft Excd 一75 KB代码如下:Private Sub分拆工作表Dim sht As WorksheetDim MyBook As WorkbookSet MyBook = ActiveWorkbookFor Each sht In MyBook.Sheetssht.CopyActiveWorkbook.SaveAs Filename:=MyBook.Path &""& sht.Name,FileFormat:=xlNormal'将工作簿另存为 EXCELS认格式ActiveWorkbook.CloseNextMsgB

13、ox 文件已经被分拆完毕!End Sub4,、将多个工作薄合并为一个多sheet的工作薄勺 zgdxExcrell 1 )国-Excel (2)出T rgriK_Extze'l(3Jwdx_Exglr4)背1 zqdx Excel<5)W rgdx_f xcel(6)* zgdH_Exccl(7)国-xdx_Excvl(a);gdif_Excel(1J.FgrtcExceU君必电Ex.制 HJ | ?gdx_ExceH4;i rqdx_E蜕/(3) ;gdi(t)trel(6) /,代码如下:Sub Books2Sheets()'定义对话框变量Dim fd As File

14、DialogSet fd=Application.FileDialog(msoFileDialogFilePicker)'新建一个工作簿Dim newwb As WorkbookSet newwb=Workbooks.AddWith fdIf.Show=-1 Then'定义单个文件变量Dim vrtSelectedItem As Variant'定义循环量Dim i As Integer i=1'开始文件检索For Each vrtSelectedItem In.SelectedItems'翻开被合并工作簿Dim tempwb As WorkbookSe

15、t tempwb=Workbooks.Open(vrtSelectedItem)'复制工作表tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i),把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于 xls文件, 即Excel97-2022的文件,如果是 Excel2022,需要改成 xlsxnewwb.Worksheets(i).Name=VBA.Replace(tempwb.Name,".xls","")'关闭被合并工作簿tempwb.Close SaveChanges:=Fa

16、lse i=i+1 Next vrtSelectedItemEnd IfEnd WithSet fd=NothingEnd Sub5、将含有多个sheet的工作表内容信息汇总至一个sheet中SuCombine()Dim J As IntegerOn Error Resume NextSheets(1).SelectWorksheets.AddSheets(1).Name = "Combined"Sheets(2).ActivateRange("A1").EntireRow.SelectSelection.Copy Destination:=Sheets(1).Range("A1&qu

温馨提示

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

评论

0/150

提交评论