ImageVerifierCode 换一换
格式:DOC , 页数:92 ,大小:389.50KB ,
资源ID:3562741      下载积分:18 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3562741.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Excel-VBA-多工作簿多工作表汇总实例集锦.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Excel-VBA-多工作簿多工作表汇总实例集锦.doc

1、 1,多工作表汇总(Consolidate) ‘ ‘两种写法都要求地址用R1C1形式,各个表格的数据布置有规定。 Sub ConsolidateWorkbook() Dim RangeArray() As String Dim bk As Worksheet Dim sht As Worksheet Dim WbCount As Integer Set bk = Sheets("汇总") WbCount = Sheets.Count ReDim RangeArray(1 To WbCount - 1) Fo

2、r Each sht In Sheets If sht.Name <> "汇总" Then i = i + 1 RangeArray(i) = "'" & sht.Name & "'!" & _ sht.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1) End If Next bk.Range("A1").Consolidate RangeArray, xlSum, True, True [a1

3、].Value = "姓名" End Sub Sub sumdemo() Dim arr As Variant arr = Array("一月!R1C1:R8C5", "二月!R1C1:R5C4", "三月!R1C1:R9C6") With Worksheets("汇总").Range("A1") .Consolidate arr, xlSum, True, True .Value = "姓名" End With End Sub 2,多工作簿汇

4、总(Consolidate) ‘多工作簿汇总 Sub ConsolidateWorkbook() Dim RangeArray() As String Dim bk As Workbook Dim sht As Worksheet Dim WbCount As Integer WbCount = Workbooks.Count ReDim RangeArray(1 To WbCount - 1) For Each bk In Workbooks '在所有工作簿中循环 If Not bk Is

5、 ThisWorkbook Then '非代码所在工作簿 Set sht = bk.Worksheets(1) '引用工作簿的第一个工作表 i = i + 1 RangeArray(i) = "'[" & bk.Name & "]" & sht.Name & "'!" & _ sht.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1) End If Next Worksheets(1).Range(

6、"A1").Consolidate _ RangeArray, xlSum, True, True End Sub 3,多工作簿汇总(FileSearch) ‘ ‘help\汇总表.xls Sub pldrwb0531() '汇总表.xls '导入指定文件的数据 Dim myFs As FileSearch Dim myPath As String, Filename$ Dim i As Long, n As Long Dim Sht1 As Worksheet, sh As Worksheet

7、 Dim aa, nm$, nm1$, m, arr, r1, col1% Application.ScreenUpdating = False Set Sht1 = ActiveSheet Set myFs = Application.FileSearch myPath = ThisWorkbook.Path With myFs .NewSearch .LookIn = myPath .FileType = msoFileTypeNoteItem .Filename = "*.xl

8、s" If .Execute(SortBy:=msoSortByFileName) > 0 Then n = .FoundFiles.Count col1 = 2 ReDim myfile(1 To n) As String For i = 1 To n myfile(i) = .FoundFiles(i) Filename = myfile(i) aa = InS

9、trRev(Filename, "\") nm = Right(Filename, Len(Filename) - aa) nm1 = Left(nm, Len(nm) - 4) If nm1 <> "汇总表" Then Workbooks.Open myfile(i) Dim wb As Workbook Set wb = ActiveWorkbook

10、 m = [a65536].End(xlUp).Row arr = Range(Cells(3, 3), Cells(m, 3)) Sht1.Activate col1 = col1 + 1 Cells(2, col1) = nm '自动获取文件名 Cells(3, col1).Resize(UBound(arr), 1) = arr

11、 wb.Close savechanges:=False Set wb = Nothing End If Next Else MsgBox "该文件夹里没有任何文件" End If End With [a1].Select Set myFs = Nothing Application.ScreenUpdating = True End Sub ‘根据上例增加了在

12、一个工作簿中可选择多个工作表进行汇总,运用了文本框多选功能 Public ar, ar1, nm$ Sub pldrwb0531() '汇总表.xls '导入指定文件的数据(默认工作表1的数据) '直接从C列依次导入 Dim myFs As FileSearch Dim myPath As String, Filename$ Dim i As Long, n As Long Dim Sht1 As Worksheet, sh As Worksheet Dim aa, nm1$, m, arr, r1, col1% Applicati

13、on.ScreenUpdating = False On Error Resume Next Set Sht1 = ActiveSheet Set myFs = Application.FileSearch myPath = ThisWorkbook.Path With myFs .NewSearch .LookIn = myPath .FileType = msoFileTypeNoteItem .Filename = "*.xls" If .Execute(S

14、ortBy:=msoSortByFileName) > 0 Then n = .FoundFiles.Count col1 = 2 ReDim myfile(1 To n) As String For i = 1 To n myfile(i) = .FoundFiles(i) Filename = myfile(i) aa = InStrRev(Filename, "\")

15、 nm = Right(Filename, Len(Filename) - aa) nm1 = Left(nm, Len(nm) - 4) If nm1 <> "汇总表" Then Workbooks.Open myfile(i) Dim wb As Workbook Set wb = ActiveWorkbook For Each sh In

16、Sheets s = s & sh.Name & "," Next s = Left(s, Len(s) - 1) ar = Split(s, ",") UserForm1.Show For j = 0 To UBound(ar1) If Err.Number = 9 Th

17、en GoTo 100 Set sh = wb.Sheets(ar1(j)) sh.Activate m = sh.[a65536].End(xlUp).Row arr = Range(Cells(3, 3), Cells(m, 3)) Sht1.Activate

18、 col1 = col1 + 1 Cells(2, col1) = sh.[a1] Cells(3, col1).FormulaR1C1 = "=[" & nm & "]" & ar1(j) & "!RC3" ‘显示引用的工作簿工作表及单元格地址 Cells(3, col1).AutoFill Range(Cells(3, col1), Cells(UBound(arr) + 2, col1))

19、 ‘Cells(3, col1).Resize(UBound(arr), 1) = arr Next j 100: wb.Close savechanges:=False Set wb = Nothing s = "" If VarType(ar1) = 8200 Then Erase ar1 E

20、nd If Next Else MsgBox "该文件夹里没有任何文件" End If End With [a1].Select Set myFs = Nothing Application.ScreenUpdating = True End Sub Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = T

21、rue Then s = s & ListBox1.List(i) & "," End If Next i If s <> "" Then s = Left(s, Len(s) - 1) ar1 = Split(s, ",") MsgBox "你选择了 " & s Unload UserForm1 Else mg = MsgBox("你没有选择任何工作表!需要重新选择吗? ", vbYesNo, "提示") If mg = 6 Then Else Unload UserForm1 End If End If End Sub

22、Private Sub CommandButton2_Click() Unload UserForm1 End Sub Private Sub UserForm_Initialize() With Me.ListBox1 .List = ar ‘文本框赋值 .ListStyle = 1 ‘文本前加选择小方框 .MultiSelect = 1 ‘设置可多选 End With Me.Label1.Caption = Me.Label1.Caption & nm End Sub 4,多工作表汇总(字典、数组) ‘ ‘Data多表汇总06

23、23.xls Sub dbhz() '多表汇总 Dim Sht1 As Worksheet, Sht2 As Worksheet, Sht As Worksheet Dim d, k, t, Myr&, Arr, x Application.ScreenUpdating = False Application.DisplayAlerts = False Set d = CreateObject("Scripting.Dictionary") For Each Sht In Sheets ‘删除同名的表格,获得要增加的汇总表格不重复名字 If InStr(Sht

24、Name, "-") > 0 Then Sht.Delete: GoTo 100 nm = Mid(Sht.[a3], 7) d(nm) = "" 100: Next Sht Application.DisplayAlerts = True k = d.keys For i = 0 To UBound(k) Sheets.Add after:=Sheets(Sheets.Count) Set Sht1 = ActiveSheet Sht1.Name = Replace(k(i), "/", "-") ‘增加汇总表,把名字中的”/

25、不能用作表名的)改为”-“ Next i Erase k Set d = Nothing For Each Sht In Sheets With Sht .Activate If InStr(.Name, "-") = 0 Then nm = Replace(Mid(.[a3], 7), "/", "-") Myr = .[h65536].End(xlUp).Row Arr = .Range("d10:h" & Myr) Set d

26、 CreateObject("Scripting.Dictionary") For i = 1 To UBound(Arr) x = Arr(i, 1) If Not d.exists(x) Then d.Add x, Arr(i, 5) Else d(x) = d(x) + Arr(i, 5) End If Nex

27、t k = d.keys t = d.items Set Sht2 = Sheets(nm) Sht2.Activate myr2 = [a65536].End(xlUp).Row + 1 If myr2 < 9 Then Cells(9, 1).Resize(1, 2) = Array("PartNo.", "TTL Qty") Cells(10, 1).Resize(U

28、Bound(k) + 1, 1) = Application.Transpose(k) Cells(10, 2).Resize(UBound(t) + 1, 1) = Application.Transpose(t) Else Cells(myr2, 1).Resize(UBound(k) + 1, 1) = Application.Transpose(k) Cells(myr2, 2).Resize(UBound(t) + 1, 1) = Application.T

29、ranspose(t) End If Erase k Erase t Set d = Nothing End If End With Next Sht Application.ScreenUpdating = True End Sub 5,多工作簿提取指定数据(FileSearch) ‘2011-8-31 ‘ Sub GetData() Dim Brrbz(1 To 200, 1 To 19), Brrgr(1 To 500, 1 To 23)

30、 Dim myFs As FileSearch, myfile Dim myPath As String, Filename$, wbnm$ Dim i&, n&, mm&, aa$, nm1$, j& Dim Sht1 As Worksheet, sh As Worksheet, wb1 As Workbook Application.ScreenUpdating = False Set wb1 = ThisWorkbook wbnm = Left(wb1.Name, Len(wb1.Name) - 4) Set Sht1 = ActiveSheet Sht1.[a

31、2:w200] = "" aa = Left(Sht1.Name, 2) Set myFs = Application.FileSearch myPath = ThisWorkbook.Path & "\" With myFs .NewSearch .LookIn = myPath .FileType = msoFileTypeNoteItem .Filename = "*.xls" .SearchSubFolders = True If .Execute(SortBy:=msoSortByFileName) > 0 Then

32、 n = .FoundFiles.Count ReDim myfile(1 To n) As String For i = 1 To n myfile(i) = .FoundFiles(i) Filename = myfile(i) nm1 = Split(Mid(Filename, InStrRev(Filename, "\") + 1), ".")(0) If nm1 = wbnm Then GoTo 200

33、 Workbooks.Open myfile(i) Dim wb As Workbook Set wb = ActiveWorkbook For Each sh In Sheets If InStr(sh.Name, aa) Then sh.Activate If aa = "班子" Then mm = mm + 1

34、 Brrbz(mm, 1) = [b2].Value For j = 2 To 18 Step 2 If j < 10 Then Brrbz(mm, j) = Cells(j / 2 + 34, 11).Value Else Brrbz(mm, j) = Cells(j / 2 + 34

35、 9).Value End If Next GoTo 100 Else If [b2] = "" Then GoTo 50 mm = mm + 1 Brrgr(mm, 1) = [b2].Value

36、 Brrgr(mm, 2) = [e38].Value Brrgr(mm, 3) = [i38].Value For j = 4 To 18 Step 2 If j < 12 Then Brrgr(mm, j) = Cells(j / 2 + 38, 8).Value Else

37、 Brrgr(mm, j) = Cells(j / 2 + 38, 7).Value End If Next For j = 20 To 23 Brrgr(mm, j) = Cells(j + 28, 8).Value Next End If

38、 End If 50: Next 100: wb.Close savechanges:=False Set wb = Nothing 200: Next Else MsgBox "该文件夹里没有任何文件" End If End With If aa = "班子" Then [a2].Resize(mm, 19) = Brrbz Else [a2].Resize(mm, 23) = Brrgr End If [

39、a1].Select Set myFs = Nothing End Sub ‘2011-7-15 ‘ Sub pldrsj() '批量导入指定文件的数据     Dim myFs As FileSearch, myfile, Brr     Dim myPath$, Filename$, nm2$     Dim i&, j&, n&, aa$, nm$     Dim Sht1 As Worksheet, sh As Worksheet     Application.ScreenUpdating = False     Set Sht1 = ActiveSh

40、eet     Sht1.Cells.ClearContents     nm2 = ActiveWorkbook.Name     Set myFs = Application.FileSearch     myPath = ThisWorkbook.Path     With myFs         .NewSearch         .LookIn = myPath         .FileType = msoFileTypeNoteItem         .Filename = "*.xls"         .SearchSubFolders = True

41、         If .Execute(SortBy:=msoSortByFileName) > 0 Then             n = .FoundFiles.Count             ReDim Brr(1 To n, 1 To 2)             ReDim myfile(1 To n) As String             For i = 1 To n                 myfile(i) = .FoundFiles(i)                 Filename = myfile(i)              

42、   aa = InStrRev(Filename, "\")                 nm = Right(Filename, Len(Filename) - aa)      '带后缀的Excel文件名                 If nm <> nm2 Then                     j = j + 1                     Workbooks.Open myfile(i)                     Dim wb As Workbook                     Set wb = ActiveWor

43、kbook                     Set sh = wb.Sheets("Sheet1")                     Brr(j, 1) = nm                     Brr(j, 2) = sh.[c3].Value                     wb.Close savechanges:=False                     Set wb = Nothing                 End If             Next         Else             MsgBo

44、x "该文件夹里没有任何文件"         End If     End With     Sht1.Select     [a3].Resize(UBound(Brr), 2) = Brr     Set myFs = Nothing Application.ScreenUpdating = True End Sub Sub pldrsj0707() ' 'Report 2.xls '批量导入指定文件的数据 Dim myFs As FileSearch, myfile Dim myPath As String, Filename$,

45、ma&, mc& Dim i As Long, n As Long, nn&, aa$, nm$, nm1$ Dim Sht1 As Worksheet, sh As Worksheet Application.ScreenUpdating = False Set Sht1 = ActiveSheet: nn = 5 Sht1.[b5:e27] = "" Set myFs = Application.FileSearch myPath = ThisWorkbook.Path & "\data" ‘指定的子文件夹内

46、搜索 With myFs .NewSearch .LookIn = myPath .FileType = msoFileTypeNoteItem .Filename = "*.xls" .SearchSubFolders = True If .Execute(SortBy:=msoSortByFileName) > 0 Then n = .FoundFiles.Count ReDim myfile(1 To n) As Str

47、ing For i = 1 To n myfile(i) = .FoundFiles(i) Filename = myfile(i) nm1=split(mid(filename,instrrev(filename,"\")+1),".")(0) 一句代码代替以下3句 ‘aa = InStrRev(Filename, "\") ‘nm = Right(Filename, Len(Filename) - aa) '带后缀的

48、Excel文件名 ‘nm1 = Left(nm, Len(nm) - 4) '去除后缀的Excel文件名 If nm1 <> Sht1.Name Then Workbooks.Open myfile(i) Dim wb As Workbook Set wb = ActiveWorkbook For Each sh In Sheets sh.Activate ma = [b65536].End(xlUp).Row If ma > 6 Then ‘第6行是表头 If ma > 10 Then ma =

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服