VBA(excel)将工作表复制到新工作簿

时间:2017-12-11 13:24:54

标签: excel vba excel-vba

现在我正在尝试创建一个excel宏,它应该从我的工作簿中复制一个工作表。此工作表应保存为以单元格B1中的值命名的新Excel文件。 到目前为止一切正常。 问题是:我希望副本是备份。因此表(副本)中的值不应连接到原始表。 所以简而言之:我只想复制格式+值,而不是表格中的公式。 你有什么想法我可以做这个工作吗?

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

Dim FName           As String
Dim FPath           As String

Dim wbkExport As Workbook
Dim shtToExport As Worksheet
FPath = "C:\Users\User\Desktop\Artikelnummern"
FName = Worksheets("Test").Cells(1, 2).Value

Set shtToExport = ThisWorkbook.Worksheets("Test")
Set wbkExport = Application.Workbooks.Add
shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count)
Application.DisplayAlerts = False                       'Possibly overwrite 
without asking
wbkExport.SaveAs Filename:=FPath & "\" & FName & ".xlsx"
Application.DisplayAlerts = True
wbkExport.Close SaveChanges:=False

End Sub

1 个答案:

答案 0 :(得分:1)

替换你的行:

shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count)

使用:

shtToExport.Cells.Copy
wbkExport.Worksheets(wbkExport.Worksheets.Count - 1).Range("A1").PasteSpecial xlPasteValues
wbkExport.Worksheets(wbkExport.Worksheets.Count - 1).Range("A1").PasteSpecial xlPasteFormats