关键词不能为空

当前您在: 主页 > 英语 >

1.如何合并多个excel文件

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 00:00
tags:

-

2021年2月10日发(作者:填充)


如何合并多个


excel


文件!




有一个文件夹下有很多个


excel


文件,每个


excel


里面 只有一个表。怎么将这些表合并到一



EXCEL


文件中





常见问题


,


执行下面的宏



Sub huizhong()




Dim fd As FileDialog


Dim Wbook As Workbook


Dim rowindex As Integer


Set fd = alog(msoFileDialogFilePicker)



Dim vrtSelectedItem As Variant



With fd


.


文件



过滤



If .Show = -1 Then


rowindex = 1



For Each vrtSelectedItem In .SelectedItems


Set Wbook = (vrtSelectedItem)


subrowindex = 1 '


每个表从第一行开始



Do While eets(


'


假设被汇总的


excel


文件名为




综合表



表名为


sheet1 .


Workbooks(





.xls


1)


eets(


以下是对每一行进行赋值



Workbooks(



< p>


.xls


2)


eets(


subrowindex = subrowindex + 1


rowindex = rowindex + 1


Loop



Next vrtSelectedItem



Else


End If


End With




Set fd = Nothing



End Sub



=


=



运行后再选择要合并的文档,








Sub aa()


Dim fd As FileDialog


Dim Wbook As Workbook


Dim rowindex As Integer


Set fd = alog(msoFileDialogFilePicker)



Dim vrtSelectedItem As Variant



With fd


.


文件



过滤



If .Show = -1 Then


rowindex = 1



For Each vrtSelectedItem In .SelectedItems


Set Wbook = (vrtSelectedItem)


subrowindex = 1 '


每个表从第一行开始



Do While eets(


'


假设被汇总的


excel


文件名为




新建



Microsoft Excel


工作表


表名为


sheet1.


Workbooks(


新建



Microsoft


Excel


工 作表


.xls


eets(


以下是对每一 行进行赋值



Workbooks(


新建



Microsoft


Excel


工 作表


.xls


eets(


Workbo oks(


新建



Microsoft


Excel


工作表


.xls


eets(


Workbooks(


新建



Microsoft


Excel


工作表


.xls


eets(

Workbooks(


新建



Microsoft


Excel


工 作表


.xls


eets(


Workbo oks(


新建



Microsoft


Excel


工作表


.xls


eets(


Workbooks(


新建



Microsoft


Excel


工作表


.xls


eets(

Workbooks(


新建



Microsoft


Excel


工 作表


.xls


eets(


Workbo oks(


新建



Microsoft


Excel


工作表


.xls


eets(


subrowindex = subrowindex + 1


rowindex = rowindex + 1


Loop


1)


=


2)


=


3)


=


4)


=


5)


=


6)


=


7)


=


8)


=


9)


=



Next vrtSelectedItem



Else


End If


End With




Set fd = Nothing



End Sub










通过< /p>


VBA


宏合并


Excel


工作表





今天火车票到手,最重要的事情搞定啦,庆祝一下


~



昨天跟盼盼说要写一篇她看得懂的,小路从来都是言而有信的 人


~


想了半天,对于


Excel



我只会玩宏,所以有了这一篇日志


~



咳咳,切入正题。工作中经常会用到的把几个


Excel


文件合并到一个,或者是把一个


Excel


文件里的所有


Sheet


合并到一个< /p>


Sheet


来进行统计。下面分别提供用


vba


宏来解决这两个问


题的方法


~



1.


合并


Excel


文件



< br>打开一个空


Excel


文件,


A lt+F11


,插入一个模块,开始写代码吧:




查看源码




打印关于




Sub MergeWorkbooks()










Dim FileSet










Dim i As Integer

















On Error GoTo 0










Updating = False















FileSet


=


nFilename(FileFilter:=


2003(*.xls), *.xls,Excel


2007(*.xlsx),*.xlsx









MultiSelect:=True, Title:=


选择要合并的文件



















If TypeName(FileSet) =













GoTo ExitSub










End If


















For Each Filename In FileSet














Filename














Sheets().Move After:=()










Next














ExitSub:










Updating = True














End Sub




这段代码在干嘛?它首先打开一个文件选择框,


你可以选择一个或多个文件,< /p>


然后把这些文


件里的所有


Sheet


合并到当前这个工作簿里来,有重名的


Sheet

< br>会自动在后面加数字。嗯,


接下来可以进行第二歩鸟


~



2.


合并工作表




同上,再添加一个模块吧,代码如下




查看源码




打印关于




Function LastRow(sh As Worksheet)










On Error Resume Next









LastRow = (what:=


































After:=(


































Lookat:=xlPart, _


































LookIn:=xlFormulas, _


































SearchOrder:=xlByRows, _


































SearchDirection:=xlPrevious, _


































MatchCase:=False).Row










On Error GoTo 0





End Function











Sub MergeSheets()










Dim sh As Worksheet










Dim DestSh As Worksheet










Dim Last As Long









Dim shLast As Long









Dim CopyRng As Range










Dim StartRow As Long















Updating = False









Events = False















'


新建一个“汇总”工作表











yAlerts = False









On Error Resume Next









eet s(


汇总











On Error GoTo 0










yAlerts = True









Set DestSh =










=


汇总
















'


开始复制的行号,忽略表头,无表头请设置成


1










StartRow = 2
















For Each sh In eets




















If <> Then

















Last = LastRow(DestSh)


















shLast = LastRow(sh)
























If shLast > 0 And shLast >= StartRow Then



























Set CopyRng = ((StartRow), (shLast))



























If Last + > Then
























MsgBox


内容太多放不下啦!


























GoTo ExitSub






















End If
















































With (Last + 1,


























.PasteSpecial xlPasteValues


























.PasteSpecial xlPasteFormats


























yMode = False





















End With

















End If













End If









Next











ExitSub:










(1)










t










Updating = True









Events = True














End Sub




这一大坨又在干嘛?它会新建一个叫做


“汇总”


的工作 表,


然后把当前工作簿里的所有


Sheet

里有数据的内容都复制到“汇总”表里。提示:如果数据表里的内容没有表头的话需要把

StartRow = 2


改成


StartRow = 1


哦。


-


-


-


-


-


-


-


-



本文更新与2021-02-10 00:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/625133.html

1.如何合并多个excel文件的相关文章