Viper029
@Viper029
Программирую за печенье

Как обойти особенность работы Selection.Find в макросах?

Обработкой документов, пользуемся макросами. На 2003 офисе. Проверил в 2019 и 2021 офисе, одна и та же ошибка.
Этот код работает в 2003 офисе:
Sub M1()

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^13"
        .Replacement.Text = "^32"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

End Sub


Он заменяет перенос строки на пробел в выделенном тексте. Но в новом он заменяет не в выделенном тексте, а во всем документе. Путем проб и ошибок было найдено решение. 3 строка теперь выглядит так:
With Selection.Range.Find
Но работает только до перезапуска. Как исправить?
  • Вопрос задан
  • 25 просмотров
Решения вопроса 1
Viper029
@Viper029 Автор вопроса
Программирую за печенье
Сам спросил, сам ответил. Как оказалось, в новом ворде поле .Wrap = wdFindContinue не работает, нужно задавать так: .Wrap = 0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы