0

我想从 Workbook1 复制 Sheet2 并将其粘贴到新 Workbook 的 Sheet1 中,并将新 Workbook 保存为 Sheet2,Workbook 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

我在这里想念什么?

4

1 回答 1

2

我认为默认情况下创建的新工作簿不会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
于 2013-03-12T13:16:48.273 回答