`
hcwj2009
  • 浏览: 26751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VBA合并多个EXCEL表代码

阅读更多
合并多个EXCEL表代码
今天工作时,写一个文档,突然需要将多个excel工作簿合并成一个,于是总结一下,希望有用。

1、合并多个EXCEL表为同一个EXCEL表
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

用法:新建一个文件夹,将你要合并的excel都拷贝到里面,新建一个excel文件,作为合并的输出。打开刚刚创建的excel,按ALT+F11,代开代码编辑页面,双击sheet1,打开sheet的编辑器,将以上代码拷贝到编辑器,点击工具栏上的运行按钮。所有在文件夹下的excel都被加入到当前的excel文档了,分布在不同的sheet页中。

这个用的比较多



2、合并多个EXCEL表单为同一个表单

Sub test()
    ActiveSheet.UsedRange.ClearContents
    Dim countalla, countthis As Integer
    countallb = 0
    countthis = 0
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> ActiveSheet.Name Then
           countthis = Sheets(i).UsedRange.Rows.Count
           Sheets(i).UsedRange.Copy [a65536].End(xlUp).Offset(1, 1)
           countallb = countallb + countthis
           ActiveSheet.Range("a" & countallb, Range("a" & countallb).End(xlUp).Offset(1, 0)).Value = Sheets(i).Name
        End If
    Next i
End Sub


  用法:在当前excel中按ALT+F11,双击sheet1,打开sheet的编辑器,将以上代码拷贝到编辑器,点击工具栏上的运行按钮。





3、多个EXCEL表合并成一个表单

Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    Dim countalla, countthis As Integer
    countallb = 0
    countthis = 0
   

    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
    ThisWorkbook.Sheets("合并").UsedRange.ClearContents
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
        Sheets().Move after:=ThisWorkbook.Sheets("合并")
       
        If ThisWorkbook.Sheets(2).Name <> "合并" Then
           countthis = ThisWorkbook.Sheets(2).UsedRange.Rows.Count
           ThisWorkbook.Sheets(2).UsedRange.Copy ThisWorkbook.Sheets("合并").[a65536].End(xlUp).Offset(1, 0)
           countallb = countallb + countthis
           'ThisWorkbook.Sheets("合并").Range("a" & countallb, Range("a" & countallb).End(xlUp).Offset(1, 0)).Value = ThisWorkbook.Sheets(2).Name
           Application.DisplayAlerts = False
           ThisWorkbook.Sheets(2).Delete
           Application.DisplayAlerts = True
        End If
  
        x = x + 1
    Wend

ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub

ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub


用法同1.
分享到:
评论

相关推荐

    excel_VBA快速合并多表数据

    在“excel_VBA快速合并多表数据”这个主题中,我们将深入探讨如何利用VBA宏来高效地合并多个工作表的数据,这对于处理大量表格数据的办公人员来说非常实用。 首先,我们需要了解VBA的基础知识。VBA是一种基于Visual...

    Excel-VBA应用:循环将多个工作表另存为PDF的宏代码

    在Excel中,VBA(Visual Basic for Applications)是一种强大的编程工具,可以让我们自动化许多重复性的任务,例如在本例中的“Excel-VBA应用:循环将多个工作表另存为PDF的宏代码”。这个宏功能允许用户批量将工作...

    excel宏工具VBA工具合并excel合并多个工作簿工作表

    excel宏工具VBA工具,合并多个excel文件 合并多个excel工作表excel宏工具VBA工具合并excel合并多个工作簿工作表

    Excel VBA 经典代码应用大全

    通过《Excel VBA经典代码应用大全》,你将能够逐步掌握这些知识点,并能够编写出高效、实用的VBA代码,解决实际工作中的问题,提升工作效率。无论你是Excel新手还是经验丰富的用户,这本书都会是你提升Excel技能的...

    将excel表格按A列拆分为多个文件VBA代码

    1、将需要拆分的EXCEL文件放在一个单独的文件夹,打开这个EXCEL文件,并关闭其他打开的EXCEL文件; 2、excel表格保留一行标题行,并把第一列数据填写为拆分项(文件拆分时将按第一列的内容进行归类合并为一个文件)...

    多个EXCEL表合并工具

    这时,“多个EXCEL表合并工具”就能派上大用场。这款工具专门设计用来高效地合并格式一致的多张Excel表格,极大地提高了工作效率。 1. **Excel表格合并的基本原理**: - 合并Excel表格主要是通过读取多个工作簿中...

    Excel合并(带文件名)_ExcelVBA_多个excel_

    在“多个excel”合并的场景中,VBA宏可以遍历指定文件夹中的所有Excel文件,读取每个文件的数据,然后将它们整合到一个新的工作表中。 以下是一个简单的VBA宏代码示例,用于合并带有文件名的Excel文件: ```vba ...

    通过VBA将多个格式相同的Excel文件合并成一个文件,带文件处理

    在本场景中,我们关注的是如何利用VBA来实现多个格式相同的Excel文件的合并。这是一项常见的需求,特别是在数据分析、报告汇总或数据整理时,能够批量处理大量类似的Excel文件,可以显著提高工作效率。 首先,我们...

    使用VBA合并多个Excel工作簿

    此方法适用于需要将多个Excel工作簿中的所有工作表合并到一个工作簿的情况。假设需要合并的工作簿位于“D:\示例\数据记录\”文件夹中,包括两个工作簿:`test1.xls` 和 `test2.xls`。`test1.xls` 包含三张工作表,`...

    Excel VBA 操作 拆分当前Excel表中 / 所选取文件夹所有子文件中 所有sheet保存到对应文件夹路径中拆分表内

    在Excel VBA编程中,有时候我们需要对大型工作簿进行管理和优化,这可能涉及到将一个大文件拆分成多个小文件,每个文件对应原工作簿中的一个单独工作表。这个任务可以通过编写VBA宏来实现,从而自动化整个过程。下面...

    将多个Excel文件批量导入某个Excel文件中去的VBA宏

    压缩文件中包括一个包含宏代码的Excel文件Sheet Macros.xls以及其他四个测试文件工作表 1~4。 宏的功能为(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的...

    EXCEL VBA合并sheet文件代码

    本文将深入解析如何利用VBA实现Excel中多个Sheet的合并,这一过程通常在数据整合、报告汇总等场景下非常有用。 ### 核心功能:合并Sheet #### 1. **理解需求** 在处理大型数据集时,我们可能有多个工作表(Sheet)...

    EXCEL VBA合并工作表与工作薄

    在EXCEL中,用户可以使用VBA来合并多个Excel文件。首先,需要打开一个空Excel文件,然后按下Alt+F11键,插入一个模块,开始编写代码。在这个模块中,使用GetOpenFilename方法来选择要合并的文件,然后使用For Each...

    VBA合并多个word文档到一个文档中

    利用VBA合并多个word文档到一个文档中,操作说明在文档中

    EXCEL如何通过VBA实现合并指定工作簿

    通过excel VBA代码中的application.getopenfilename打开选择文件窗口,通过MultiSelect:=True参数允许同时选择多个文件,通过定义变量X,将选择的文件名(含路径赋值给X,后指定每个X1在变更集X中,)如何实现通过VBA...

    EXCEL_VBA常用代码实战大全.doc

    * 使用 Union 方法:Union 方法用于合并多个单元格范围。例如:`Union(Range("A1:A5"), Range("B1:B5"))` 将合并两个单元格范围。 * 使用 UsedRange 属性:UsedRange 属性用于获取工作表中已使用的单元格范围。例如...

    EXCEL VBA代码优化

    5. 合并连续的单元格操作:将多个写入或读取操作合并为一个操作,如一次性写入一整行或一整列,可以减少与 Excel 交互的次数。 6. 使用 Range对象的Find方法,而不是FindNext或FindPrevious,以减少搜索的迭代次数...

    EXCELVBA贝塞尔曲线及插值_贝塞尔平滑_EXCELVBA贝塞尔曲线及插值_excelvba插值_

    而样条插值是一种分段的光滑曲线,可以在多个数据点间进行平滑过渡,它也包括了贝塞尔样条,这种方法在VBA中可以通过分解矩阵实现。 在实现Excel VBA的插值功能时,通常需要以下步骤: 1. 收集并排序数据点。 2. ...

    EXCEL 多个文件合并

    在实际应用中,使用VBA合并多个Excel文件可以极大地提高工作效率,尤其是在处理大量数据集或定期报告的情况下。然而,需要注意的是,这种操作可能会导致大量的内存消耗,特别是在处理大型文件或大量文件时。因此,在...

    excel VBA帮助文件.rar_Excel VBA_VBA excel_VBA,Excel_excel_vba exce

    9. **事件驱动编程**:Excel VBA支持事件驱动编程,当特定事件发生时(如单击按钮、保存工作簿),关联的VBA代码将自动执行。 10. **对象库引用**:添加或更改对象库引用可以让你访问更多的对象、方法和属性。例如...

Global site tag (gtag.js) - Google Analytics