Я хочу заменить все двойные пробелы () в одном из моих документов Word на один пробел (). К моему крайнему удивлению, моя копия Microsoft Word 2013 Home может найти двойные пробелы, но не может заменить их, потому что утверждает, что в моем документе ничего не было найдено.

Если я нажимаю Ctrl + F, то появляется левая панель, и когда я вхожу Я вижу, что в моем конкретном документе у меня более 350 случаев двойного пробела. Когда, наоборот, я нажимаю Ctrl + H и окно « Поиск и замена » appera, то когда я вхожу затем нажмите « Find Next сообщение, информирующее меня о том, что в моем документе ничего не найдено.

Чтобы сделать вещи еще более смешанными, если я останусь в диалоговом окне « Поиск и замена », но переключусь с вкладки « Replace на Find », введите там двойной пробел и нажмите « Find Next , а затем - снова - Word автоматически найдет все 350+ случаев двойного пробела в моем документе.

Что мне не хватает? Как Word может просто найти что-то, но не может найти и заменить то же самое другим? Это какая-то странная книга в Word или что-то действительно странное и странное в отношении форматирования моего (довольно сложного и большого) документа?

Я попытался перезапустить Word и мой компьютер. Я попытался сохранить этот конкретный документ в новый файл и открыть его обратно из этого нового файла. И - конечно же - я проверил, что никакие странные / нестандартные варианты не проверяются поля Search options (после нажатия More что ничего странного не выбран Format или нет Special не используется. Это просто базовый, неизмененный процесс поиска или замены, который работает как талисман при поиске и полностью проваливается при замене.

1 ответ1

1

Для чего это стоит, вот макрос, который я придумал, который удаляет все лишние пробелы в документе. Так как это чей-то макрос, который я адаптировал несколько лет назад, я не мог объяснить вам подробно, как он работает.

Sub RemoveExtraSpaces()
'
' RemoveExtraSpaces Macro
' I wanted to be able to add the replacements to a list rather than repeating the same find command over and over
'
' Don't forget to add the comma and space when adding new exceptions!

ScreenUpdating = False

findArray = Array("   ", "  ", " ,", " .", " ;", "( ", " )", " ?", " !", ". ^p", "? ^p", "! ^p", "..", ",,", "^p ")
replArray = Array(" ", " ", ",", ".", ";", "(", ")", "?", "!", ".^p", "?^p", "!^p", ".", ",", "^p")

For i = 0 To UBound(findArray)
'Selection.Find.ClearFormatting
'Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = findArray(i)
.Replacement.Text = replArray(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = True
.MatchWildcards = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i


ScreenUpdating = True

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .