Невозможно скопировать лист в другую книгу - PullRequest
0 голосов
/ 29 мая 2019

У меня есть небольшая проблема, но я не могу понять, как ее решить.Поэтому каждую неделю мне приходится составлять сводные таблицы, чтобы обобщать необработанные данные, которые я получаю.Я подумал, что было бы намного проще, если бы я создал все таблицы в файле макета, а затем просто скопировал их в новый файл и затем изменил источник.И я написал следующий код:

Sub something()

Workbooks.Open Filename:="C:\\\\Layout.xlsx"
With Workbooks("Layout.xlsx")
    .Sheets("Pivot").Copy Before:=ActiveWorkbook.Sheets("Main List")
    .Close savechanges:=False
End With

End Sub

Этот код работает просто отлично.Проблема возникает, когда я пытаюсь вставить код в свою личную рабочую книгу, а затем напрямую запустить VBA, а не копировать и вставлять его каждый раз.

Что я мог сделать, это изменить код с «Activeworkbook» на имя моей новой рабочей книги, но ее имя меняется каждую неделю, потому что оно основано на дате.Я уже пытался объявить имя новой книги в виде строки и вызвать ее через это, но это тоже не сработало.

Есть идеи?

1 Ответ

1 голос
/ 29 мая 2019

Я бы использовал объекты книги, чтобы два файла были чистыми:

Sub something()

    Dim wb_from As Workbook, wb_to As Workbook
    Set wb_to = ActiveWorkbook
    Workbooks.Open Filename:="C:\\\\Layout.xlsx"
    Set wb_from = Workbooks("Layout.xlsx")
    wb_from.Sheets("Pivot").Copy Before:=wb_to.Sheets("Main List")
    wb_from.Close SaveChanges:=False
end sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...