精华内容
下载资源
问答
  • 使用VBA合并多个Excel工作簿 例如,需要将多个Excel工作簿中的工作表合并到一个工作簿。这
  • VBA-合并多个工作簿

    万次阅读 2019-06-14 15:54:28
    1.首先我们理清思路,我们将所有要合并到一起的Excel工作簿放到一文件夹里,该文件夹里面有一启用宏的工作表,启动该工作表的宏,就可以将该文件夹里面的所有Excel文件的内容合并到一张表里面,后面可以将合并...

    1.首先我们理清思路,我们将所有要合并到一起的Excel工作簿放到一个文件夹里,该文件夹里面有一个启用宏的工作表,启动该工作表的宏,就可以将该文件夹里面的所有Excel文件的内容合并到一张表里面,后面可以将合并完成后的数据复制或剪切到新的Excel表中。

    2.代码如下

    Sub 合并目录所有工作簿全部工作表()
    
    Dim MP, MN, AW, Wbn, wn
    
    Dim Wb As Workbook
    
    Dim i, a, b, d, c, e
    
    Application.ScreenUpdating = False
    
    MP = ActiveWorkbook.Path '获取当前工作薄的路径
    
    MN = Dir(MP & "\" & "*.xls") '遍历Excel文件
    
    AW = ActiveWorkbook.Name '获取当前工作簿名称
    
    Num = 0
    
    e = 1
    
    Do While MN <> ""
    
    If MN <> AW Then
    
    Set Wb = Workbooks.Open(MP & "\" & MN)
    
    a = a + 1
    
    With Workbooks(1).ActiveSheet
    
    For i = 1 To Sheets.Count
    '复制工作表内容
    
    If Sheets(i).Range("a1") <> "" Then
    
    Wb.Sheets(i).Range("a1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)
    
    d = Wb.Sheets(i).UsedRange.Columns.Count
    
    c = Wb.Sheets(i).UsedRange.Rows.Count - 1
    '增加一列
    wn = Wb.Sheets(i).Name
    
    .Cells(1, d + 1) = "表名"
    
    .Cells(e + 1, d + 1).Resize(c, 1) = MN & wn
    
    e = e + c
    
    Wb.Sheets(i).Range("a2").Resize(c, d).Copy .Cells(.Range("a1048576").End(xlUp).Row + 1, 1)
    
    End If
    
    Next
    
    Wbn = Wbn & Chr(13) & Wb.Name
    
    Wb.Close False
    
    End With
    
    End If
    
    MN = Dir
    
    Loop
    
    Range("a1").Select
    
    Application.ScreenUpdating = True
    
    MsgBox "共合并了" & a & "个工作薄下全部工作表。如下:" & Chr(13) & Wbn, vbInformation, "提示"
    
    End Sub
    

    3.在Excel工作表中整加一个按钮控件,指定宏,点击运行效果如下:

    展开全文
  • 我有两excel工作簿,我需要从一和一组工作表中取出一组工作表,然后将其另存为新工作簿 . 由于我将每周做这,我想将它保存为宏/ vba .我在网上发现了这代码并对其进行了编辑,但它无效 .Sub CopySheets()Dim...

    我有两个excel工作簿,我需要从一个和一组工作表中取出一组工作表,然后将其另存为新工作簿 . 由于我将每周做这个,我想将它保存为宏/ vba .

    我在网上发现了这个代码并对其进行了编辑,但它无效 .

    Sub CopySheets()

    Dim wkb As Workbook

    Dim sWksName As String

    sWksName = "Store 1"

    For Each wkb In Workbooks

    If wkb.Name <> ThisWorkbook.Name Then

    wkb.Worksheets(sWksName).Copy _

    Before:=ThisWorkbook.Sheets(1)

    End If

    Next

    Set wkb = Nothing

    sWksName = "Store 3"

    For Each wkb In Workbooks

    If wkb.Name <> ThisWorkbook.Name Then

    wkb.Worksheets(sWksName).Copy _

    Before:=ThisWorkbook.Sheets(1)

    End If

    Next

    Set wkb = Nothing

    sWksName = "Store 30"

    For Each wkb In Workbooks

    If wkb.Name <> ThisWorkbook.Name Then

    wkb.Worksheets(sWksName).Copy _

    Before:=ThisWorkbook.Sheets(1)

    End If

    Next

    Set wkb = Nothing

    sWksName = "Store 33"

    For Each wkb In Workbooks

    If wkb.Name <> ThisWorkbook.Name Then

    wkb.Worksheets(sWksName).Copy _

    Before:=ThisWorkbook.Sheets(1)

    End If

    Next

    Set wkb = Nothing

    End Sub

    我必须打开两个工作簿,这没问题 . 工作表“存储1”被复制正常然后停止,当我点击调试时,它告诉我这行有错误

    wkb.Worksheets(sWksName).Copy _

    Before:=ThisWorkbook.Sheets(1)

    错误消息:“脚本超出范围”

    展开全文
  • VBA拆分一个excel文件为多个excel文件 合并代码如下 Sub 多表多文件合并为多表一文件() Dim FileArray Dim X As Integer Application.ScreenUpdating = False FileArray = Application.GetOpenFilename...

    打开编辑器参考这个篇文章
    VBA拆分一个excel文件为多个excel文件

    合并代码如下

    Sub 多表多文件合并为多表一文件()
    
    Dim FileArray
    
    Dim X As Integer
    
    Application.ScreenUpdating = False
    
    FileArray = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="合并工作薄")
    
    X = 1
    
    While X <= UBound(FileArray)
    
    Workbooks.Open Filename:=FileArray(X)
    
    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    X = X + 1
    
    Wend
    
    ExitHandler:
    
    Application.ScreenUpdating = True
    
    Exit Sub
    
    errhadler:
    
       MsgBox Err.Description
    
    End Sub
    
    

    F5 执行,会提示选择需要合并的文件

    展开全文
  • 最近捣腾起VBA,通过录制宏,度娘,...效果视频和代码在下方,还有很多可以优化的地方,也欢迎各路大神指点如果不会使用,也欢迎给我留言哦效果如下视频VBA合并多个工作簿https://www.zhihu.com/video/116754003944...

    最近捣腾起VBA,通过录制宏,度娘,真的可以捣腾出简单,却可以提升我们工作效率N倍的代码

    下面做一个小小工具的分享,通过VBA,实现自动把一个文件夹内的excel工作簿的内容合并到同一个工作表中。效果视频和代码在下方,还有很多可以优化的地方,也欢迎各路大神指点

    如果不会使用,也欢迎给我留言哦

    效果如下视频

    a59b169d02d939cf8d882d1d3d3c1956.png
    VBA合并多个工作簿https://www.zhihu.com/video/1167540039444783104
    Sub 
    展开全文
  • 在一些操作中,往往会需要将多个工作簿进行合并。一般的操作方法都是打开两个工作簿,然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的窗口里面进行设置就可以了。这种方法适合在移动数量较...
  • Excel VBA合并工作簿

    2021-01-10 21:34:34
    利用VBA合并工作簿,将需要合并的多个工作簿放到解压后的文件夹中,运行后输入文件夹的地址即可。
  • 新建一新的工作簿,然后查看代码,将以下VBA语句复制进去即可: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).Name &amp;lt;&...
  • Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name &lt;&gt; ActiveSheet.Name ThenX = Range("A65536").End(xlUp).Row + 1...
  • 前言:此程序是将多个工作簿汇总至主工作簿的多个工作表中,且每个工作表的name是对应的工作簿的name。 Sub 批量合并workbook至主workbook的多个worksheet中() '1.批量打开文件,将文件路径记录到数组f中 f = ...
  • 通过MultiSelect:=True参数允许同时选择多个文件,通过定义变量X,将选择的文件名(含路径赋值给X,后指定每个X1在变更集X中,)如何实现通过VBA合并多个指定工作簿到一个新的工作表或者一个工作簿多个工作表。
  • 工作中经常遇到具有相同版式的多个Excel工作簿,将每个Sheet以追加的方式合并到同一个Excel工作簿中,如下图:上图只显示了3张表中Sheet1的合并,Sheet2、Sheet3乃至其它均是如此,如果手动操作的话工作量是巨大的,...
  • 来自《别怕excel vba其实很简单》 Sub 宏1() ' ' 宏1 宏 Dim bt As Range, r As Long, c As Long r = 1 c = 7 Dim wt As Worksheet Set wt = ThisWorkbook.Worksheets(1) wt.Rows(r + 1 &am...
  • 当我们需要将多个工作簿合并成1个工作簿,可以使用power query,当然也能用SQL、WPS智能工具箱,更可以使用VBA。今天我们一起来学习如何用VBA快速搞定多个工作簿合并成1个工作簿,让你的效率快到飞起来!操作步骤:1...
  • 双击打开汇总文件.xls(当然我们也可以随便新建一excel文档),按ALT+F11打开VBE编辑器,新建一模块,粘贴如下代码:Option ExplicitSub mergeonexls() '合并多工作簿中指定工作表On Error Resume NextDim x As ...
  • 工作中经常遇到具有相同版式的多个Excel工作簿,将每个Sheet以追加的方式合并到同一个Excel工作簿中,如下图:上图只显示了3张表中Sheet1的合并,Sheet2、Sheet3乃至其它均是如此,如果手动操作的话工作量是巨大的,...
  • 工作中,我们会遇到这样的场景,将多个工作表的内容合并到一个工作簿中(区别于昨天的内容:拆分工作簿),如果有这样的需求,请跟我一起来了解,怎么用VBA实现呢。1、先来说明使用前的注意事项这里是分别复制给子工作...
  • 工作中,我们会遇到这样的场景,将多个工作表的内容合并到一个工作簿中(区别于昨天的内容:拆分工作簿),如果有这样的需求,请跟我一起来了解,怎么用VBA实现呢。1、先来说明使用前的注意事项这里是分别复制给子工作...
  • 在我们日常生活中,时时用到合并多个工作簿为一个工作表,这里利用VBA简单实现。希望对大家有点用
  • 无论在知乎还是在其他一些网站,都有提问或描述如何才能合并多个工作簿。回答中不乏有推荐power query 之类。power query是新版Excel的功能,看过其简介,的确能感觉到它的强大。不过像我一样用着老版本的Excel的人...
  • 代码分为三部分: 第一部分是新建一个汇总的工作表,并重新自定义命名; 第二部分是逐一将各个工作表复制粘贴到汇总工作表中;...Worksheets.Add '新建一个工作表 Sheets(1).Name = "汇总工作表" ...
  • 1、所有要汇总的工作簿在同一文件夹中,这里以后缀为.xlsx为例; 2、需要合并的工作表名称相同(如: “sheet1”),且数据字段一样(如:A列表示序号,B列表示姓名,C列表示月工资等); 3、需要合并的数据所在...
  • 今天将大家用VBA一键合并,只需要几秒种,为了测试这段代码,我们新建了4个工作簿在文件夹中,数据都是模拟的,做试验一键合并代码操作如下所示:我们看原始表格数据,其中,第1个工作簿有点特殊,这个工作簿中,有...
  • excel合并多个工作簿

    2021-04-07 14:31:28
    合并工作簿vba代码: Sub Macro1() Dim MyPath$, MyName$, sh As Worksheet, sht As Worksheet, m& Set sh = ActiveSheet MyPath = ThisWorkbook.Path & "\" MyName = Dir(MyPath & "*.xlsx") ...
  • 工作中,我们除了将不同工作簿中的内容合并到一个工作簿外,在同一个工作簿中,也有将不同工作表进行合并的诉求,怎么将多个指定工作表合并(复制、带格式和公式)到同一个工作表(汇总表)中呢,我给大家分享下我的逻辑...
  • 我们在实际工作中,有时候需要将多个工作薄中的sheet表的数据快速合并到一个sheet表里,假如我们使用手动去复制粘贴,这样就特别浪费时间和精力,所以我们可以使用VBA快速实现,我们只需要输入VBA代码。Sub 合并当前...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 199
精华内容 79
关键字:

vba合并多个工作簿