Как сохранить выбранные листы как новую книгу - PullRequest
0 голосов
/ 10 февраля 2020

Привет, я пытаюсь написать макрос для выбора определенных листов в новый файл.

Сложность в том, что я хочу сохранить все листы, но 3.

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

вот мой код, подпункт останавливается на Sheets(Array(Selection)).Copy

, что не правильно команда.

спасибо за помощь

Sub ExportPrices()

Dim ExportName As String
Dim ReportingDir As String
Dim Dashboard As String
Dim ws As Worksheet

Dashboard = ThisWorkbook.Name
ExportName = Workbooks(Dashboard).Worksheets("Macro").Range("ExportName").Value
ReportingDir = Workbooks(Dashboard).Worksheets("Macro").Range("ReportingDir").Value


Workbooks(Dashboard).Worksheets("Europe").Select

For Each ws In Worksheets
    If ws.Name <> "Macro" And ws.Name <> "Dashboard" And ws.Name <> "Data" Then
ws.Select (False)
    End If
Next

'create an array from selection

Sheets(Array(Selection)).Copy

    ActiveWorkbook.SaveAs Filename:=ReportingDir & ExportName, _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

End Sub

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

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

Sheets("Yoursheet").Move

Поскольку это всегда будет последняя созданная книга, вы можете обратиться к ней, используя Workbooks.Count:

Dim wb As Workbook
Set wb = Workbooks(Workbooks.Count)
0 голосов
/ 10 февраля 2020

Вы должны добавить новую книгу и скопировать целевой лист в wb:

 Dim oOutBook As Workbook
 Set oOutBook = Workbooks.Add
 Sheets(Array(Selection)).Copy Before:=oOutBook.Sheets(1)
 oOutBook.SaveAs strPathOutput
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...