從不同的工作簿複製不同的工作表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.

  • 最後它要求複製工作表名稱。

相關內容