我有多個工作簿,其中包含多個工作表。每個工作簿都是針對每個人的。因此,我想將所有工作表合併到一個新工作簿中,並分別爲每個人保存工作簿。我無法弄清楚如何在新的工作簿和現有的工作簿之間切換。我不想通過文件名來引用現有文件,即包含多個工作表的文件,因爲每個人的文件名都不相同。如何在使用兩個工作簿時引用工作簿,而其中一個工作簿沒有特定的硬編碼文件名
Sub MergeSheets()
Dim i As Integer
Dim Newbook As Workbook
Dim ws As Worksheet
Dim PersonName As String
PersonName = ActiveWorkbook.Sheets("Person Profile").Range("D3")
Set Newbook = Workbooks.Add
Set ws = Newbook.Worksheets("Sheet1").Name = "Merged"
ActiveWorkbook.Sheets("Person Profile").Activate
ActiveSheet.UsedRange.Select
Selection.Copy Destination:=Newbook.Range("A1")
For i = 2 To Sheets.Count
Sheets(i).Activate
UsedRange.Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=ws.Range("A65536").End(xlUp).Row
Next
Newbook.SaveAs "C:\Users\Documents\" + PersonName + ".xls"
End Sub
打開通過其路徑的書並將其設置爲一個變量,然後用互動所述可變。 – findwindow
你的「單人」工作簿列表在哪裏循環?也許你會發布你的開始和結束場景的例子。 – user3598756
@ user3598756該宏無意循環遍歷所有工作簿。這個想法是打開一個需要處理的工作簿並運行宏,它將創建一個單獨的工作簿並將其保存在代碼中提供的路徑中。該文件的名稱將從正在處理的工作簿中的一個工作表中的一個單元標識引用。我希望這是有道理的。謝謝 – Zar