Word Макрос: Заменить дефис на тире между цифр в таблицах

Автор Anton, 15 июля 2016, 13:58

Anton

Добрый день!
Возникла такая задача: нужно заменить дефис на тире между цифрами во всех таблицах. Исходный текст огромный, много таблиц. Можно ли как-то решить вопрос через макрос?
Пример есть.

[вложение удалено администратором]

Администратор

Без макросов, с помощью "Найти и заменить" можно сделать так:
1) галочка "Подстановочные знаки";
2) поле "Найти": ([0-9])-([0-9])
3) поле "Заменить": \1^=\2


Пояснения

Поле "Найти". Круглые скобки нужны, чтобы потом в поле "Заменить" можно было обращаться к нужному фрагменту. Первому фрагменту в круглых скобках присваивается номер 1 и затем в поле "Заменить" к нему обращаемся так "\1".

Поле "Заменить". Тире в поле "Заменить" можно вставить с помощью кнопки "Специальный". Я выбрал там "Короткое тире".

Anton

Такой способ заменяет дефисы и в тексте, а мне нужно только в таблицах.

Администратор

Замена только в таблицах:

Sub Макрос()

    Dim tbl As Table
   
    For Each tbl In ActiveDocument.Tables
        With tbl.Range.Find
            .Text = "([0-9])-([0-9])"
            .Replacement.Text = "\1^=\2"
            .Forward = True
            .Wrap = wdFindStop
            .MatchWildcards = True
            .Execute Replace:=wdReplaceAll
        End With
    Next tbl

End Sub

Anton