将多个excel文件中的表合并成为一个文件中的多张表

将多个excel文件中的表合并成为一个文件中的多张表
将多个excel文件中的表合并成为一个文件中的多张表

下面的小程序是一个Excel宏,是将多个Excel文件里的sheet表单给合并到一个新Excel 文件里。

1.首先建立一个目录,将想要合并的表格放入到目录里,然后新建一个Excel文件--》打开--》Alt+F11--》插入模块--》将下面的程序考入--》然后回到文件里运行!

Sub CombineFiles()

Dim path As String

Dim FileName As String

Dim LastCell As Range

Dim Wkb As Workbook

Dim WS As Worksheet

Dim ThisWB As String

Dim MyDir As String

MyDir = ThisWorkbook.path & "\"

'ChDrive Let't(MyDir,1)'find all the excel files

'ChDir MyDir

'Match=Dir$("")

ThisWB = https://www.360docs.net/doc/7912714749.html,

Application.EnableEvents = False

Application.ScreenUpdating = False

path = MyDir

FileName = Dir(path & "\*.xls", vbNormal)

Do Until FileName = ""

If FileName <> ThisWB Then

Set Wkb = Workbooks.Open(FileName:=path & "\" & FileName)

For Each WS In Wkb.Worksheets

Set LastCell = WS.Cells.SpecialCells(xlCellTypeLastCell)

If LastCell.Value = "" And LastCell.Address = Range("$A$1").Address Then

Else

WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

End If

Next WS

Wkb.Close False

End If

FileName = Dir()

Loop

Application.EnableEvents = True Application.ScreenUpdating = True Set Wkb = Nothing

Set LastCell = Nothing

End Sub

用Excel制作等额本金和等额本息两种还贷表

例:同事小张为了买新房准备到银行贷款30万元,商定20年还清。如果用等额本息法,会把贷款总额的本息之和平均分摊到整个还款期,按月等额还款;如果用等额本金法,针将贷款额的本金平均分摊到整个还款期限内每月归还,同时付清上一交易日到本次还款日之间的贷款利息。到底哪种还款方式对自己更有利一些? 先算第一种方案,月还款额的计算在Excel中有专门的函数PMT。其用法是PMT(月利率,还款期限,贷款总额),非常简单。所以,我们只要如图1所示表格的B5单元格中,输入公式 “=PMT(B2/12,B3,B4)”,回车后就可以得到按等额本息法计算的每月还款额,其中第一个参数“B2/12”是为了得到月贷款利率。再在B6单元格输入公式“=B5*B3”,回车就可以轻松得到20年的还款总额了。

用第二种方案稍显麻烦一些。按照规则,我们可以先将本金300000元分摊到每个月中,再计算每个月应支付的利息,显然,每个月应付利息数值是不同的。因此,我们可以建立一个如图2所示的表格。表格直至E244单元格,正好表示240个月。在E2单元格输入公式“=300000/240”,回车后即可得到每月平均分摊的贷款本金。 在利息计算上,我们可以很容易地推想:每交完一次款后,那么下月付款时就会少交相应部分的利息。因此,我们在表格的E5单元格输入公式“=(300000-($D5-1)*$E$2)*($B$2/12)”,回车后就可以得到第一次交款时所应付的利息部分。其中“$B$2/12”仍然是根据年利率

计算月利率。拖动E5单元格的填充句柄向下直至E244单元格填充公式,那么每月应付的利息数就都有了。 我们每个月应付款为每月分摊的本金及应付利息数。所以,找个空白单元格,输入公式“=SUM(E5:E244)+300000”,回车,就可以得到这20年中我们一共向银行交纳的钱数“519611.25”(真够恐怖的)。 有了这两个数字,哪种付款方案对自己更有利不就一目了然了吗? 网友提问:我现在大兴买了一套房,代款30万,分20年付清,月供为2000多一左右,但我不知道这个结果是如何计算出来的,你能把计算公式告诉我吗? 王立宏律师回复:等额本息还款法,指贷款期间每月以相等的额度平均偿还贷款本息。等额本息还款公式: 每月还款额=贷款本金*月利率*(1+月利率)^总还款月数/((1+月利率)^总还款月数-1) 等额本金还款法,指每月等额偿还贷款本金,贷款利息随本息逐月递减。利随本清法。总共偿还的利息比等额本息法要少。 等额本金还款公式: 每月还款额=贷款本金/总还款月数+(贷款本金-累计已还款本金)*月利率 其中: 累计已还款本金=贷款本金/总还款月数*已还款月数 注:商业代款和公积金贷款是依利率不同来计算的。 “^”表示指数 扩大商业性个人住房贷款利率下浮幅度支持居民首次购买普通住房

如何将多个Excel工作簿合并到一个新的工作表的发法

有多个独立的excel工作簿文件需要合并到一个新的工作簿中,保留原来excel工作簿中各个excel工作表名称和结构。如果量小,可以采用打开一个个复制的方法。若有100多份excel 文件要合并到一个excel工作簿,这样就需要用批量处理多个工作簿的合并(PS:不是工作表)。 1、将需要合并的excel工作簿文件放置在一个文件夹中。 2、在该文件夹中,新建立一个新的excel工作簿文件。 3、打开新建立的excel工作簿文件,将鼠标移动到下方工作表名称sheet1上右键,选择查看代码。 4、在弹出的代码编辑窗口中,输入代码。 5、在代码窗口中,粘贴下列代码: Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath &"\"&"*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 Do While MyName <>"" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath &"\"& MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1) Next WbN = WbN & Chr(13) & https://www.360docs.net/doc/7912714749.html, Wb.Close False End With End If MyName = Dir Loop Range("A1").Select Application.ScreenUpdating = True MsgBox "共合并了"& Num &"个工作薄下的全部工作表。如下:"& Chr(13) & WbN, vbInformation, "提示" End Sub

怎样合并多个Excel工作文档进行计算

怎样合并多个Excel工作文档进行计算 Excel是MicrosoftOfficesystem中的电子表格程序。您可以使 用Excel创建工作簿(电子表格集合)并设置工作簿格式,以便分析 数据和做出更明智的业务决策。特别是,您可以使用Excel跟踪数据,生成数据分析模型,编写公式以对数据进行计算,以多种方式 分析数据,并以各种具有专业外观的图表来显示数据。简而言之:Excel是用来更方便处理数据的办公软件。 当我们对多个Excel工作表中的数据进行计算的时候,往往需要对数据进行合并,然后才能开始计算。这样才能更快的提高计算效率,下面,笔手为大家列出几个技巧,希望对大家有帮助。 一、根据位子或者分类情况来进行合并计算 当您以前未在“合并计算”对话框内选中“创建连至源数据的链接”复选框的情况下,才能更改合并计算。如果选中该复选框,请 单击“关闭”,然后重新创建合并计算。 a、单击合并计算数据的左上角单元格。 b、在“数据”选项卡的“数据工具”组中,单击“合并计算”。 c、请执行下列一项或多项操作: 二、添加源区域开始进行合并计算 新的源区域必须在相同位置中有数据,或者有与合并计算中其他区域内的那些列标签匹配的列标签 1、如果工作表在另一个工作簿中,请单击“浏览”找到文件, 然后单击“确定”以关闭“浏览”对话框。在“引用”框中输入后 跟感叹号的文件路径。 2、键入为区域指定的名称,然后单击“添加”。 三、调整源区域的大小或形状

1、在“所有引用位置”下,单击要更改的源区域。 2、在“引用”框中,编辑所选引用。 3、单击“添加”。 四、从合并计算中删除源区域 1、在“所有引用位置”中,单击要删除的源区域。 2、单击“删除”。 3、自动更新合并计算 以上几点就是合并多个Excel工作文档的一些操作技巧,希望对大家有一些帮助。

用excel编制等额本金与等额本息还款表

用excel编制等额本金与等额本息还款表 目前,银行的个人按揭贷款的还款方式主要有以下2种方式:等额本金与等额本息。 借贷者往往十分纠结于是选用等额本金,还是等额本息实惠,还有提前还款是否要吃亏等问题,下面通过excel计算,一方面给出了两种方式的还款明细表,另一面通过对计算过程的理解,让大家知道其实无论选用哪一种方式都是一样的,无所谓吃亏与否。 一、等额本金 设借贷金额500000元,贷款年限5年,贷款期数60期,首次还贷日期2016年1月20日,按如下图所示设计等额本金贷款还款计划书。 在单元格A6键入公式:=IF(ROW()-5>$F$3,"",ROW()-5),然后向下引用。 在单元格B6键入公式:=H3&"/"&J3&"/"&L3 在单元格C6键入年利率百分点p=4.25, 在单元格F6键入公式:=ROUND(B3/F3,2) 在单元格G6键入公式:=ROUND(B3*C6/100/12,2) 在单元格E6键入公式:=F6+G,然后向下引用。 在单元格H6键入公式:=B3-F6 在单元格J6键入公式:=E6 在单元格B7键入公式:=IF(A7<>"",$H$3+INT(($J$3-2+A7)/12)&"/"&(($J$3-1+A7) -12*INT(($J$3-2+A7)/12))&"/"&$L$3,""),然后向下引用。 在单元格C7键入公式:=IF(A7<>"",C6,""),然后向下引用。 在单元格F7键入公式:=IF(A7<>"",H6/($F$3-A6),""),然后向下引用。 在单元格G7键入公式:=IF(A7<>"",ROUND(H6*C7/100/12,2),""),然后向下引用。 在单元格E7键入公式:=IF(A7<>"",F7+G7,"") ,然后向下引用。 在单元格H7键入公式:=IF(A7<>"",H6-F7-D6,"") ,然后向下引用。 在单元格J7键入公式:=IF(A7<>"",E7+J6+D6,"") ,然后向下引用。 最后,进行一些格式设计,可得完整的等额本金还款计划书如下表所示:

如何将多个Excel工作簿合并成一个新的工作簿

如何将多个E x c e l工作簿合并成一个新的工作 簿 集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

如何将多个Excel工作簿合并成一个新的工作簿 有多个独立的excel工作簿文件需要合并到一个新的工作簿中,保留原来excel工作簿中各个excel工作表名称和结构。如果量小,可以采用打开一个个复制的方法。若有100多份excel文件要合并到一个excel工作簿,这样就需要用批量处理多个工作簿的合并(PS:不是工作表)。 1、将需要合并的excel工作簿文件放置在一个文件夹中。 2、在该文件夹中,新建立一个新的excel工作簿文件。 3、打开新建立的excel工作簿文件,将鼠标移动到下方工作表名称sheet1上右键,选择查看代码。 4、在弹出的代码编辑窗口中,输入代码。 5、在代码窗口中,粘贴下列代码: Sub合并工作薄() DimFilesToOpen DimxAsInteger OnErrorGoToErrHandler Application.ScreenUpdating=False FilesToOpen=Application.GetOpenFilename_ (FileFilter:="MicroSoftExcel文件(*.xls),*.xls",_ MultiSelect:=True,Title:="要合并的文件") IfTypeName(FilesToOpen)="Boolean"Then MsgBox"没有选中文件"

GoToExitHandler EndIf x=1 Whilex<=UBound(FilesToOpen) Workbooks.OpenFilename:=FilesToOpen(x) x=x+1 Wend ExitHandler: Application.ScreenUpdating=True ExitSub ErrHandler: MsgBoxErr.Description ResumeExitHandler EndSub 6、点击菜单栏运行-运行子过程-用户窗体。关闭代码输入窗口。打开excel工作簿,可以看到下方已经将之前工作簿中的工作表都复制到了这一新建工作簿中。

excel中如何将相同格式的多个不同excel文件合并为一张表

excel中如何将相同格式的多个不同excel文件合并为一张表? 欧阳学文 【问题描述】:日常工作中采集的数据经常会是大量格式相同的Excel表格。(如要求多个单位上交表格,最后需要汇总这些表格的内容),如何实现自动化合并呢? 【解决方案】: 1.将所有格式相同的Excel表格保存到一个文件夹内; 2.在文件夹内新建一个Excel工作表,命名为“汇总表”; 3.打开汇总表,按“Alt + F11”打开VBA开发环境,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区编写如下代码: Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num, ini As Long

Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 ini = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet If ini = 0 Then Wb.Sheets(1).Range(Wb.Sheets(1).Cells(1, 1),Wb.Sheets(1).Cells(1, Wb.Sheets(1).UsedRange.Columns.Count)).Copy .Cells(1, 1) ini=1 End If For G=1 To Sheets.Count

【实务操作Excel】跨表、跨工作簿合并之合并多个工作表

多个工作表的合并及动态更新 之利用Excel数据新建查询(Power Query)功能 当今信息化“大数据”时代,数据汇总分析已经成为财务、税务、审计人员必不可少的一项技能。作为一线审计人员,经常与数据打交道,小编更是有切身体会,各种Excel函数、并表、透视等更是家常便饭手到擒来的事情。Excel操作技能慢慢成为每一个财税人员的看家本领,基础技能,小编后续在解码财税政策实务原理的同时,将会在【工具】菜单选项模块更新一系列Excel操作小技巧,相信能够给财税工作领域的小伙伴们带来实务工作上的便利,为您的职业发展助一臂之力。今天小编打算写一篇关于跨表或跨工作簿甚至跨文件夹合并的问题,这项“神技能”可以说是财税人员很少去运用的技能,但一旦掌握,您将受益终身。更多工具搜索:爱问财税

一、跨表合并解决的问题 财务部门作为公司数据记录、归集、处理中心,是企业管理运营的核心,成本费用的列支、收入现金的记录,采购端的支出、销售端的收入,公司合并、分立、上市、清算…等等,每项业务都需要在财务、税务部门体现出来。当公司规模不大时,可以手工简单处理,靠单笔查询或脑袋记忆就能解决,但一旦公司规模扩张,尤其多元化业务发展,企业的财务或税务人员势必面临着数据归集、处理、分析的难题。 今天所讲的跨表合并主要解决财务部门在面临不同部门提交的数据、不同日期、月份、年度的数据,或者不同公司、行业的报表数据等,各项数据分散在不同的工作表、工作簿甚至文件夹中,这种情况该如何解决入如何能运用Excel的操作技巧达到快速合并的效果,可以留给更多分析、报告的时间。 二、跨表合并解决的方法 跨表合并解决的方法其实有很多种,包括数据新建查询(Power Query)、方方格子、Excel易用宝、慧办公软件、VBA函数等,那么作为财税人员,我们应该学习哪种技能既能解决问题又比较容易上手呢?那么我们先分析下这些工具具体应用场景:

EXCEL多个相同的表格合成一个表格

EXCEL多个相同的表格合成一个表格 先将30多个表合并到一个工作薄中,再将工作薄中的30多个表合并到一个工作表中,具体如下:1.新建一个excel文件并打开,按ALT+F11-->插入-->模块,将下面的代码复制到模块中: Sub merge() Dim FileSet Dim i As Integer Dim filename On Error GoTo 0 Application.ScreenUpdating = False FileSet = Application.GetOpenFilename(FileFilter:="Excel 2003(*.xls),*.xls,Excel 2007-2013(*.xls x),*.xlsx", MultiSelect:=True, Title:="选择需要合并的文件") If TypeName(FileSet) = "Boolean" Then GoTo ExitSub End If For Each filename In FileSet Workbooks.Open filename Sheets().Move after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) Next ExitSub: Application.ScreenUpdating = True End Sub 点击运行,类似于播放的那个按钮,或者点击菜单上的运行下的运行子过程,将需要合并的表全部选上,(最好是将需要合并的工作表放到一个文件中,便于选择)确定。 2.再一次的插入模块,左边会显示插入模块2,同样将下面代码复制到模块2中,如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).Name <> https://www.360docs.net/doc/7912714749.html, Then X = Range("A65536").End(xlUp).Row + 1 Sheets(j).UsedRange.Copy Cells(X, 1) End If Next Range("B1").Select Application.ScreenUpdating = True

excel如何合并多个工作簿中的指定工作表

excel如何合并多个工作簿中的指定工作表 浏览次数:1256次悬赏分:30|解决时间:2010-4-14 02:10 |提问者:lanxue88888 每天要汇总很多数据! 浪费太多时间! 现在求一个宏,或者工具! 可以将指定目录下的excel工作簿中的指定表!汇总到一起! 例如!将book1.xlsx中的sheet1。 book2.xlsx中的sheet1。 book3.xlsx中的sheet1。 book4.xlsx中的sheet1。 ~~~~~~~~~~ 合并到book汇总.xlsx中的sheet1中 如果你的建议是复制~~粘贴~就算了!这个我知道如何使用! 如果提供宏的朋友可以加入详细说明,以便我学习,我将酌情加分! 谢谢! 最佳答案 Sub Macro1() Dim lj$, dirname$, nm$, wb As Workbook, sh As Worksheet, a, b Set wb = ThisWorkbook a = Array(0, 2, 1) b = Array(0, -1, 0) lj = ThisWorkbook.Path nm = https://www.360docs.net/doc/7912714749.html, dirname = Dir(lj & "\*.xls") Application.ScreenUpdating = False For Each sh In Sheets https://www.360docs.net/doc/7912714749.html,edRange.Offset(3, 0).Clear Next Do While dirname <> "" If dirname <> nm Then With GetObject(lj & "\" & dirname) For i = 1 To 2 If IsSheetEmpty = IsEmpty(.Sheets(i).UsedRange) Then _ .Sheets(i).UsedRange.Offset(3, 0).Copy wb.Sheets(.Sheets(i).Name).Cells(65536, a(i)).End(xlUp).Offset(1, b(i)) Next .Close False End With End If

excel多个文件合并代码

然后我们把下面这些宏计算的代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示: Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536") .End(xlUp).Row + 1, 1) Next WbN = WbN & Chr(13) & https://www.360docs.net/doc/7912714749.html,

Wb.Close False End With End If MyName = Dir Loop Range("B1").Select Application.ScreenUpdating = True MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示" End Sub

多个Excel表合并形成一个Excel中的多sheet工作簿

多个Excel表合并形成一个Excel中的多sheet工作簿 (2013-03-21 11:05:24) 转载▼ 分类:excel使用技巧 新建一个excel表(把所有表最终要导入的表)。在该表中按ALT+F11打开宏,插入------ 模块 在打开的窗口中输入: Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="MicroSoft Excel文件(*.xls),*.xls", _ MultiSelect:=True, Title:="要合并的文件") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "没有选中文件" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move after:=ThisWorkbook.Sheets _ (ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True

Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub 按F5运行宏。

如何将多个Excel文件合并为一个Excel文件

如何将多个Excel文件合并为一个Excel文件 有很多张excel,而且excel表里面的数据格式及公式基本一样,那么是否可以将其合并在一个excel页面呢?其实利用excel表的VB语句就可以实现,具体操作步骤如下所示:Step1:将要合并的Excel表放置在同一个文件夹里面; Step2:在该文件夹中新建Excel; Step3:打开新建Excel,在sheet1处右键,选择查看代码,进入VB代码界面; Step4:将下面“合并当前目录下所有工作簿的全部工作表”代码输入进去; Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1) Next WbN = WbN & Chr(13) & https://www.360docs.net/doc/7912714749.html, Wb.Close False End With

excel合并多个工作簿中的工作表

excel合并多个工作簿中的工作表 在同一文件夹中有多个工作簿,其中有一个用于汇总的工作簿,要求将除该汇总工作簿外的其它工作簿中的指定工作表的数据汇总到该汇总工作簿中。(这个最好用)代码如下: Sub UnionWorksheets() Application.ScreenUpdating = False Dim lj As String Dim dirname As String Dim nm As String lj = ActiveWorkbook.Path nm = https://www.360docs.net/doc/7912714749.html, dirname = Dir(lj & "\*.xls*") Cells.Clear Do While dirname <> "" If dirname <> nm Then Workbooks.Open Filename:=lj & "\" & dirname Workbooks(nm).Activate '复制新打开工作簿的第一个工作表的已用区域到当前工作表 Workbooks(dirname).Sheets(1).UsedRange.Copy _ Range("A65536").End(xlUp).Offset(1, 0) 'sheets(1) 中的1为工作表顺序号 Workbooks(dirname).Close False End If dirname = Dir Loop End Sub

可以将指定目录下的excel工作簿中的指定表!汇总到一起! 例如!将book1.xlsx中的sheet1。 book2.xlsx中的sheet1。 book3.xlsx中的sheet1。 book4.xlsx中的sheet1。 ~~~~~~~~~~ 合并到book汇总.xlsx中的sheet1中 如果你的建议是复制~~粘贴~就算了!这个我知道如何使用! 如果提供宏的朋友可以加入详细说明,以便我学习,我将酌情加分! 谢谢! 最佳答案 Sub Macro1() Dim lj$, dirname$, nm$, wb As Workbook, sh As Worksheet, a, b Set wb = ThisWorkbook a = Array(0, 2, 1) b = Array(0, -1, 0) lj = ThisWorkbook.Path nm = https://www.360docs.net/doc/7912714749.html, dirname = Dir(lj & "\*.xls") Application.ScreenUpdating = False For Each sh In Sheets https://www.360docs.net/doc/7912714749.html,edRange.Offset(3, 0).Clear Next Do While dirname <> "" If dirname <> nm Then With GetObject(lj & "\" & dirname) For i = 1 To 2 If IsSheetEmpty = IsEmpty(.Sheets(i).UsedRange) Then _ .Sheets(i).UsedRange.Offset(3, 0).Copy wb.Sheets(.Sheets(i).Name).Cells(65536, a(i)).End(xlUp).Offset(1, b(i)) Next .Close False End With End If dirname = Dir Loop Dim UserSheet As Worksheet Set UserSheet = ActiveSheet

同一EXCEL文件合并多个工作表数据到同一工作表

同一EXCEL文件合并多个工作表数据到同一工作 表 首先,添加通用函数 1.打开VBE。 2.单击“插入——模块”,添加一个新模块。 3.在模块窗口,输入下面的代码。 Function LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(what:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function Function LastCol(sh As Worksheet) On Error Resume Next LastCol = sh.Cells.Find(what:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function 这两个函数分别用于查找工作表中包含数据的最后一行和最后一列。 下面,我们将复制工作簿中所有工作表的数据,并将这些数据合并到一个汇总工作表中。

复制多个工作表中的所有数据 1. 在模块窗口输入下列代码后,运行即可。 Sub合并工作表() Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long Dim CopyRng As Range With Application .ScreenUpdating = False .EnableEvents = False End With '如果工作表"RDBMergeSheet"存在则将其删除 Application.DisplayAlerts = False On Error Resume Next ActiveWorkbook.Worksheets("RDBMergeSheet").Delete On Error GoTo 0 Application.DisplayAlerts = True '添加一个名为"RDBMergeSheet"的工作表 Set DestSh = ActiveWorkbook.Worksheets.Add https://www.360docs.net/doc/7912714749.html, = "RDBMergeSheet" '遍历所有工作表并将数据复制到DestSh For Each sh In ActiveWorkbook.Worksheets If https://www.360docs.net/doc/7912714749.html, <> https://www.360docs.net/doc/7912714749.html, Then '找到在工作表DestSh中带有数据的最后一行 Last = LastRow(DestSh) '设置希望复制的单元格区域 Set CopyRng=https://www.360docs.net/doc/7912714749.html,edRange '测试工作表DestSh中是否有足够的行用来复制所有数据

多个excel文件快速合并成一个文件 非常好用

Excel多个文件格子如何合并?非常好用 1.先把所有要合并的EXCEL放到同一目录下. 2.在当前目录下新建一个EXCEL 3.打开新建的EXCEL 按ALT+F11 4.在sheet1里输入 -------------------------------------此行不要复制---------------- Sub 合并工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath& "\" & "*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 Do While MyName<> "" If MyName<>AWbName Then Set Wb = Workbooks.Open(MyPath& "\" &MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1) Next WbN = WbN&Chr(13) &https://www.360docs.net/doc/7912714749.html, Wb.Close False End With End If MyName = Dir Loop Range("A1").Select Application.ScreenUpdating = True MsgBox "共合并了" &Num& "个工作薄下的全部工作表。如下:" &Chr(13) &WbN, vbInformation, "提示" End Sub ---------------------------此行不要复制----------------------- 5.关闭Microsoft Visual Basic

何把多个文件合并到一个Excel文档里方法

何把多个文件合并到一个Excel文档里 方法 办公软件教程PConline IT百科 日常工作当中,会产生很多Excel文档,每当需要整理的时候又很难归类、查询。这个时候就需要把诺干个Excel文档,合并到一个Excel文档里。一个Excel文档对应一个Sheet工作表,方便查询、归类、整理。下面小编就为大家介绍Excel2013把多个文件合并到一个Excel文档里方法,喜欢的朋友一起来看看吧! 表格合并 1、把需要合并的excel表格文档放到同一个文件夹里 2、新建一个“数据合并.xlsx“文档 3、打开“数据合并.xlsx“文档,在”Sheet1“工作表的地方右键→查看代码(快捷键:“Alt+F11”,尽量选用快捷方式)进入到Microsoft Visual Basic for Applications窗口 4、双击工程资源管理器里面的sheet1,在右侧的代码区粘贴如下代码: Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath,MyName,AWbName Dim Wb As Workbook,WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = https://www.360docs.net/doc/7912714749.html, Num = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("A65536").End(xlUp).Row + 2,1) = Left(MyName,Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1,1) Next WbN = WbN & Chr(13) & https://www.360docs.net/doc/7912714749.html, Wb.Close False

(完整版)VBA方法_-_将多个excel文件合并到一个excel的多个sheet中

VBA方法 - 将多个excel文件合并到一个excel的多个sheet中由上级的要求,同事需要将以前做的所有excel文件(手机话费清单表),都合并到一个excel中,并且每个excel文件为一个sheet。她开始是用复制粘贴的方法,很麻烦。所有她就问我,有没有什么方法可以快点做完。 网上搜索,方法如下: 1. 将需合并的excel文件放在同一个文件中,并这个文件中新建一个excel 文件 2. 打开新建的excel文件,按alt + f11建,打开宏,新建一个模组,将下面的代码拷贝进去,并保存。 Sub Books2Sheets() '定义对话框变量 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 Then '定义单个文件变量 Dim vrtSelectedItem As Variant '定义循环变量 Dim i As Integer i = 1 '开始文件检索 For Each vrtSelectedItem In .SelectedItems '打开被合并工作簿 Dim tempwb As Workbook Set tempwb = Workbooks.Open(vrtSelectedItem) '复制工作表 tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i) '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx newwb.Worksheets(i).Name = VBA.Replace(https://www.360docs.net/doc/7912714749.html,, ".xls", "") '关闭被合并工作簿 tempwb.Close SaveChanges:=False i = i + 1 Next vrtSelectedItem End If End With Set fd = Nothing End Sub 3. 运行程序,弹出对话框,批量选择要合并的excel名,确定即可。注意:完成后,所需表格为book1,而不是那个新建excel。

如何将多个Excel工作簿合并到一个新的工作簿的方法

如何将多个Excel工作簿合并成一个新的工作簿 有多个独立的excel工作簿文件需要合并到一个新的工作簿中,保留原来excel工作簿中各个excel工作表名称和结构。如果量小,可以采用打开一个个复制的方法。若有100多份excel 文件要合并到一个excel工作簿,这样就需要用批量处理多个工作簿的合并(PS:不是工作表)。 1、将需要合并的excel工作簿文件放置在一个文件夹中。 2、在该文件夹中,新建立一个新的excel工作簿文件。 3、打开新建立的excel工作簿文件,将鼠标移动到下方工作表名称sheet1上右键,选择查看代码。 4、在弹出的代码编辑窗口中,输入代码。 5、在代码窗口中,粘贴下列代码: Sub 合并工作薄() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="MicroSoft Excel文件(*.xls), *.xls", _ MultiSelect:=True, Title:="要合并的文件") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "没有选中文件" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub 6、点击菜单栏运行-运行子过程-用户窗体。关闭代码输入窗口。打开excel工作簿,可以看到下方已经将之前工作簿中的工作表都复制到了这一新建工作簿中。

相关文档
最新文档