View Single Post
 
Old 05-12-2021, 03:05 PM
macropod's Avatar
macropod macropod is offline Windows 10 Office 2016
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,467
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

I seems to me that maintaining a 'main' document with INCLUDETEXT fields pointing to each of the 'secondary' documents would be no more onerous than using a macro employing an array of document names that is just as susceptible as INCLUDETEXT fields to your chapters being renamed.

As for your macro, the path is missing the final separator. The code could also be improved in other ways:
Code:
Sub PageNumberReset()
Application.ScreenUpdating = False
Dim pgNo As Long, n As Long
Dim StrPath As String
Dim ArrNames, wdDoc As Document

' Specify the path to the document files
StrPath = "C:\MyDocs\Example\"
' Create an array holding the document file names, in sequence
ArrNames = Array("Chap1.docx", "Chap2.docx", "Chap3.docx")

For n = 0 To UBound(ArrNames)
  Set wdDoc = Documents.Open(FileName:=StrPath & ArrNames(n), AddToRecentFiles:=False)
  With wdDoc
    With .Sections.First
      For Each HdFt In .Headers
        With HdFt
          If .Exists = True Then
            .PageNumbers.RestartNumberingAtSection = True
            .PageNumbers.StartingNumber = pgNo + 1
          End If
        End With
      Next
      For Each HdFt In .Footers
        With HdFt
          If .Exists = True Then
            .PageNumbers.RestartNumberingAtSection = True
            .PageNumbers.StartingNumber = pgNo + 1
          End If
        End With
      Next
    End With
    pgNo = pgNo + .ComputeStatistics(wdStatisticPages)
    .Close Savechanges:=wdSaveChanges
  End With
Next n

Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]

Last edited by Charles Kenyon; 05-13-2021 at 08:53 AM.
Reply With Quote