我有一個巨集可以複製工作表然後將其另存為新的。
但是,我想複製兩個工作表,然後將它們合併為一個,但工作表位於兩個不同的工作簿中。
例如: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
.最後它要求複製工作表名稱。