If you can physically put the cursor at the top of page 8 then Demo3 should work. Otherwise, use Demo4
Sub Demo3()
Dim oRng As Range
Dim oPar As Paragraph, lngInst As Long, lngUpdate As Long
On Error Resume Next
Set oRng = ActiveDocument.Range
oRng.Start = Selection.Range.Start
For Each oPar In oRng.Paragraphs
With oPar.Range
If .Style.NameLocal = "Normal" Then
If Len(Trim(.Text)) > 2 Then
If Not .Characters.Last.Previous Like "[.!?:;]" Then
.Characters.Last.Previous.Select
lngInst = lngInst + 1
Select Case MsgBox("Do you want a period here?", vbYesNoCancel, "Add Stop")
Case vbYes
.Characters.Last.InsertBefore "."
lngUpdate = lngUpdate + 1
Case vbNo
Case Else: Exit For
End Select
End If
End If
End If
End With
Next
MsgBox lngInst & " instances found " & lngUpdate & " instances updated."
End Sub
Sub Demo4()
Dim oRng As Range
Dim oPar As Paragraph, lngInst As Long, lngUpdate As Long
On Error Resume Next
Set oRng = ActiveDocument.Range
oRng.Collapse wdCollapseStart
Do Until oRng.Paragraphs(1).Range.Characters.Last.Information(wdActiveEndPageNumber) = 8
oRng.Move wdParagraph, 1
Loop
oRng.Select
oRng.End = ActiveDocument.Range.End
For Each oPar In oRng.Paragraphs
With oPar.Range
If .Style.NameLocal = "Normal" Then
If Len(Trim(.Text)) > 2 Then
If Not .Characters.Last.Previous Like "[.!?:;]" Then
.Characters.Last.Previous.Select
lngInst = lngInst + 1
Select Case MsgBox("Do you want a period here?", vbYesNoCancel, "Add Stop")
Case vbYes
.Characters.Last.InsertBefore "."
lngUpdate = lngUpdate + 1
Case vbNo
Case Else: Exit For
End Select
End If
End If
End If
End With
Next
MsgBox lngInst & " instances found " & lngUpdate & " instances updated."
End Sub