[英]Copy a sheet from one workbook and save in a new workbook with the name being a value in a cell
我想從Workbook1復制Sheet2並將其粘貼到新工作簿的Sheet1中,並將新工作簿保存為Sheet2,工作簿1中單元格A1的值。我希望在單擊我添加的按鈕時觸發此宏。
這是我到目前為止所做的,但它創建了兩個工作簿 - 一個具有正確的名稱,但沒有Sheet2,Workbook1的內容 - 另一個具有Sheet2,Workbook1但沒有正確的工作簿名稱的內容
Sub CreateWorkbook()
Dim n As String
n = ThisWorkbook.Path & "\" & Range("A1").Value & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs n
ThisWorkbook.Sheets("Sheet2").Copy
ActiveWorkbook.Sheets("Sheet1").PasteSpecial xlPasteValues
End Sub
我在這里錯過了什么?
我不認為Workbooks.Add
創建的新工作Workbooks.Add
默認為ActiveWorkbook
。
使用ThisWorkbook
和ActiveWorkbook
會讓人感到困惑。
我喜歡將工作簿和工作表之類的東西設置為變量,這樣你就知道你在處理什么:)
我無法獲得Copy
然后PasteSpecial
位工作(雖然我沒有嘗試那么難)。
下面的例子可以做你想要的。 我使用Sheet2!A1
作為文件名,不知道你的代碼示例中的AK545
是什么。
Sub Example()
Dim Output As Workbook
Dim FileName As String
Set Output = Workbooks.Add
FileName = ThisWorkbook.Path & "\" & ThisWorkbook.Worksheets(2).Cells(1, 1).Value & ".xls"
Output.SaveAs FileName
Application.DisplayAlerts = False
Output.Worksheets("Sheet1").Delete
ThisWorkbook.Worksheets(2).Copy Before:=Output.Worksheets("Sheet2")
Output.Worksheets(1).Name = "Sheet1"
Application.DisplayAlerts = True
Output.Save
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.