Для исправления проблемы с работой Selection.Find в макросах Word можно использовать следующий код:
Sub ReplaceLineBreaksWithSpaces()
' Проверяем, есть ли что-то выделенное
If Selection.Type = wdSelectionIP Then
MsgBox "Пожалуйста, выделите текст и повторите попытку.", vbExclamation, "Ошибка"
Exit Sub
End If
' Сохраняем начальные позиции выделения
Dim startRange As Integer
Dim endRange As Integer
startRange = Selection.Start
endRange = Selection.End
' Определяем параметры поиска и замены
Dim findText As String
Dim replaceText As String
findText = "^13" ' Поиск переноса строки
replaceText = " " ' Замена на пробел
' Устанавливаем способ поиска и замены
With Selection.Find
.ClearFormatting
.Text = findText
.Replacement.Text = replaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
' Заменяем переносы строк на пробелы
Selection.Find.Execute Replace:=wdReplaceAll
' Восстанавливаем выделение
Selection.SetRange startRange, endRange
End Sub
Приведенный выше код работает только с выделенным текстом и заменяет все переносы строк на пробелы.