簡體   English   中英

從一個工作簿復制工作表並保存在新工作簿中,其名稱是單元格中的值

[英]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

使用ThisWorkbookActiveWorkbook會讓人感到困惑。

我喜歡將工作簿和工作表之類的東西設置為變量,這樣你就知道你在處理什么:)

我無法獲得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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM