首页 > 解决方案 > vba 宏从一张表中复制数据并将其保存为新工作簿

问题描述

我不确定这里出了什么问题。

以下代码应该从当前工作簿中的一张工作表中复制我的所有数据,将其粘贴到新工作簿中,然后将该工作簿保存在与当前工作簿相同的目录中。

Sub copy_to_new_workbook()

ThisWorkbook.Sheets("summary_data").Copy


' Create new Workbook
Set NewBook = Workbooks.Add

' Name it and paste data
NewBook.Activate
ActiveSheet.Paste
NewBook.SaveAs Filename:="export.xlsx"


End Sub

但是会发生什么,它是否会创建一个名为的新 excel 文件"export.xlsx",并且复制的所有内容都是我的 vba 代码?此外,会打开一个名为 likebook2或的新工作簿book3,此工作簿有我需要的数据,但没有保存?

此外,我想保存新工作簿的标题,例如:export_DD_MM_YYYY在名称字段中包含今天的日期。

谢谢。

标签: excelvba

解决方案


 ThisWorkbook.Sheets("summary_data").Copy

创建工作表的副本(不是内容) - 如果您没有指定该副本的位置,那么它将在新工作簿中创建。

那时你可以打电话

Set NewBook = Activeworkbook 

并保存它。

如果您只想复制工作表内容,那么您可以使用:

 ThisWorkbook.Sheets("summary_data").Cells.Copy 

或者

 ThisWorkbook.Sheets("summary_data").UsedRange.Copy

推荐阅读