从不同的工作簿复制不同的工作表vba

从不同的工作簿复制不同的工作表vba

我有一个宏,可以复制工作表然后将其保存为新的。

但是,我想复制两个工作表然后将它们合并为一个,但工作表位于两个不同的工作簿中。

例如:workbook1 包含 2 个工作表 (worksheet1, worksheet2) workbook2 包含 3 个工作表 (worksheet1, worksheet2, worksheet3)

我想从工作簿 1 中复制工作表 1,从工作簿 2 中复制工作表 1。然后将它们合并,因为它们都具有相同的表格格式。

我不知道怎么做。我只知道如何从同一工作簿复制多个工作表。我也知道如何合并它们,我唯一的问题是如何从不同的工作簿(即工作簿 1 和工作簿 2)复制工作表 1

我只有用于复制数据的简单代码。顺便说一下,这是我的代码:

saveFolder = "C:\Document\Macro"

path = "C:\Document\Workbook1"
fname = "Sample Account.xlsx"

Workbooks.Open path & fname
Sheets("Account1").Copy

ActiveWorkbook.SaveAs saveFolder & "\Conso.xlsx", FileFormat:=51
Workbooks(fname).Close

另一个文件位于文件夹中工作簿2它的文件名是附加帐户

答案1

此 VBA(宏)代码将帮助您从源工作簿中复制您选择的工作表以合并到活动簿中。

该代码是交互式的,而非标准代码,这使得代码用途广泛。

Sub CombineSheets()
    Dim sPath As String
    Dim sFname As String
    Dim wBk As Workbook
    Dim wSht As Variant

    Application.EnableEvents = False
    Application.ScreenUpdating = False

   sPath = InputBox("Enter File Path Of Source Workbook(s)")

   ChDir sPath

   sFname = InputBox("Enter the Filename")

   sFname = Dir(sPath & "\" & sFname & ".xl*", vbNormal)

   wSht = InputBox("Enter Worksheet Name To Copy")

   Do Until sFname = ""

       Set wBk = Workbooks.Open(sFname)
        Windows(sFname).Activate
        Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1)
        wBk.Close False
        sFname = Dir()
    Loop
    ActiveWorkbook.Save
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

怎么运行的:

  • 将此代码复制并粘贴为带有主工作簿(您想要合并工作表)的标准模块。
  • 运行宏。
  • 首先,它要求提供源工作簿的路径。

笔记,最好复制并粘贴文件路径。

  • 然后询问工作簿的名称,您也可以使用通配符,或者像工作簿的名称 Myworkbook

  • 最后,它要求复制 Sheet Name。

相关内容