怎样使用VBA多工作簿合并到本工作表?

2025-09-30 17:46:01

1、首先在开发工具中打开VBA编辑器

怎样使用VBA多工作簿合并到本工作表?

2、在单元格区域当中输入一些内容作为例子

怎样使用VBA多工作簿合并到本工作表?

3、在VBA编辑器中插入模块

怎样使用VBA多工作簿合并到本工作表?

4、在模块当中输入如下代码,然后运行

Sub多工作簿合并到当前工作表()

 

 Dim ppath As String, dirname, active_book As String, sheet_count As Long,

 

  i As Integer, ans As Byte

 

  ans=Application.InputBox("请确认在工作簿的标题行数:", "标题行", 1, , , , , 1)

 

    '默认为1

 

Application.ScreenUpdating=False

 

'为三个变量赋值

 

ppath=ActiveWorkbook.Path

 

active_book=ActiveWorkbook.Name

 

dirname=Dir(ppath & "\*.xlsx")

 

'复制标题

 

If dirname <> active_book Then

 

      Workbooks.Open Filename:=ppath & "\" & dirname

 

                                      '打开待汇总的目标工作簿

 

        Workbooks(active_book).Activate      '激活汇总表

 

  Workbooks(dirname).Sheets(1).Rows("1:" & ans).Copy Rows("1:" & ans)

 

  Workbooks(dirname).Close False

 

End If

 

'复制所有工作簿数据

 

Do While dirname <> ""

 

    If dirname <> active_book Then

 

      Workbooks.Open Filename:=ppath & "\" & dirname

 

                                        '打开待汇总的目标工作簿

 

      sheet_count=Sheets.Count       '为变量赋值为工作簿中工作表数目

 

      Workbooks(active_book).Activate      '激活汇总表

 

      For i=1 To sheet_count

 

                          '复制新打开的工作簿的第一个工作表的已用区域到rng

 

        Workbooks(dirname).Sheets(i).UsedRange.Offset(ans, 0).Copy

 

            Range("a1048576").End(xlUp).Offset(1, 0)

 

      Next

 

      Workbooks(dirname).Close False

 

    End If

 

    dirname=Dir

 

Loop

 

Application.ScreenUpdating=True

 

End Sub

怎样使用VBA多工作簿合并到本工作表?

5、用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,程序弹出提示框,提示输入各工作表标题行数

怎样使用VBA多工作簿合并到本工作表?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢