Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Не называйте собственные процедуры именами встроенных функций

Попробуйте так (не проверялось):
Скрытый текст
Код: Выделить весь код
Option Explicit

Sub SplitBy2Pages()
    Dim docMultiple As Document
    'Dim docSingle As Document
    Dim rngPage As Range
    Dim iCurrentPage As Integer
    Dim iPageCount As Integer
    Dim strNewFileName As String
    
    Application.ScreenUpdating = False
    
    Set docMultiple = ActiveDocument
    Set rngPage = docMultiple.Range
    
    iCurrentPage = 1
    iPageCount = docMultiple.Content.ComputeStatistics(wdStatisticPages)
    
    Do Until iCurrentPage > iPageCount
        If iCurrentPage = iPageCount Then
            rngPage.End = ActiveDocument.Range.End
        Else
            Selection.GoTo wdGoToPage, wdGoToAbsolute, iCurrentPage + 2
            rngPage.End = Selection.Start
        End If
        
        rngPage.Copy
        
        With Documents.Add
            .Range.Paste
            '.Range.Find.Execute Findtext:="^m", ReplaceWith:=""
            strNewFileName = Replace(docMultiple.FullName, ".doc", "_" & Right$("000" & iCurrentPage, 4) & ".doc")
            .SaveAs strNewFileName
            iCurrentPage = iCurrentPage + 2
            .Close
        End With
        
        rngPage.Collapse wdCollapseEnd
    Loop
    
    Application.ScreenUpdating = True
    
    Set docMultiple = Nothing
    Set docSingle = Nothing
    Set rngPage = Nothing
End Sub

Отправлено: 19:35, 20-05-2020 | #2