Я упоминал об этом в другом комментарии, но когда я делал несколько тестовых страниц, при запуске я всегда перетасовывал страницы, потому что я так, как это реализовано, я не верю, что Exit For
должно быть втам.
Я также поменял сравнение на StrCompare
из-за личных предпочтений и порядка циклов for.
Sub PageSort()
Dim titlesColl As Collection
Set titlesColl = New Collection
Dim i As Long
For i = 1 To ActiveDocument.Pages.Count
titlesColl.Add ActiveDocument.Pages.Item(i).Name
Next i
Dim title As Variant
For i = 1 To ActiveDocument.Pages.Count
For Each title In titlesColl
If StrComp(ActiveDocument.Pages.Item(i).Name, title, vbTextCompare) < 0 Then
ActiveDocument.Pages.Item(title).index = i
End If
Next title
Next i
Set titlesColl = Nothing
End Sub