Вы должны работать в обратном направлении через коллекцию;в противном случае последовательные пропуски могут быть пропущены.Попробуйте:
Sub Demo()
Application.ScreenUpdating = False
Dim i As Long, Rng As Range
With ActiveDocument
For i = .Fields.Count To 1 Step -1
With .Fields(i)
If .Type = wdFieldDocProperty Then
If .Result = " " Then
Set Rng = .Result
.Delete
Rng.Text = "BLANK"
End If
End If
End With
Next
End With
Application.ScreenUpdating = True
End Sub
Непонятно, почему вы используете 'Selection.EndKey Unit: = wdLine', поэтому, если:
Rng.Text = "BLANK"
недостаточно, попробуйте заменить его на:
With Rng
.End = .Paragraphs(1).Range.End - 1
.Text = "BLANK"
End With