Макрос vba для копирования данных с одного листа и сохранения его в новой книге - PullRequest
0 голосов
/ 21 января 2020

Я не уверен, что здесь происходит не так.

Следующий код должен скопировать все мои данные с одного из листов в текущей книге, вставить их в новую книгу и затем сохранить Рабочая книга в том же каталоге, что и текущая рабочая книга.

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? Кроме того, открывается новая рабочая книга, называемая book2 или book3, эта рабочая книга содержит мои необходимые данные, но она не сохраняется?

Кроме того, я хотел бы сохранить новую рабочую книгу с таким названием: export_DD_MM_YYYY с сегодняшней датой в поле имени.

Спасибо.

1 Ответ

1 голос
/ 21 января 2020
 ThisWorkbook.Sheets("summary_data").Copy

создает копию листа (не содержимое) - если вы не укажете, где должна быть расположена эта копия, она будет создана в новой книге.

На этом этапе вы можно просто позвонить

Set NewBook = Activeworkbook 

и сохранить его.

Если вы хотите скопировать только содержимое листа, вы можете использовать:

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

или

 ThisWorkbook.Sheets("summary_data").UsedRange.Copy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...