Сохраняет отдельные листы как книги в папку назначения


Этот код занимает в среднем 6 минут, чтобы полностью работать с книгой я использую. Книга в настоящее время насчитывает 148 листов и будет постоянно расти с течением времени.

Я интересно, если есть способ, чтобы изменить код от этого задания один лист за раз; и, вместо того чтобы завершить задачу всего в одно мгновение. На мой взгляд, код будет выполняться за гораздо меньший срок, а затем заполнить все листы как отдельные книги в файл назначения в то же время. Листы также не "всплывет" перед сохранением себя в папке назначения. Многое, как остановка обновления экрана и автоматические расчеты делает мир разницы - за исключением того, что не работают с этим кодом.

Sub SaveFilesInFolder()
'
'Macro for saving each worksheet as a workbook in a destination folder
'

'
Dim sh As Worksheet
Dim wb As Workbook

For Each sh In Worksheets
    SheetName = sh.Name
    sh.Copy

        With ActiveWorkbook
            .SaveAs FileName:="FolderDestination" & SheetName
            .Close SaveChanges:=True
        End With

    Next sh

End Sub

Любые предложения приветствуются.



126
0
задан 12 марта 2018 в 06:03 Источник Поделиться
Комментарии
1 ответ

То, что вы ищете, чтобы отключить свойство screenupdating, выключить оповещения и автоматически сохранить и закрыть.

    Application.DisplayAlerts = False
ThisWorkbook.Save
ThisWorkbook.Close False

Так, как этот -

Option Explicit

Sub SplitSheetsToBooks()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Const PATH_TO As String = "C:\TEMP\"
Const EXCEL_EXTENTION As String = ".xlsx"

Dim index As Long
Dim numberOfSheets As Long
Dim targetSheet As Worksheet
numberOfSheets = ThisWorkbook.Sheets.Count

For index = 1 To numberOfSheets
Set targetSheet = ThisWorkbook.Sheets(index)
targetSheet.Copy
ActiveWorkbook.SaveAs PATH_TO & targetSheet.Name & EXCEL_EXTENTION
ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

0
ответ дан 12 марта 2018 в 11:03 Источник Поделиться