Добрый день!
Возникла такая задача: нужно заменить дефис на тире между цифрами во всех таблицах. Исходный текст огромный, много таблиц. Можно ли как-то решить вопрос через макрос?
Пример есть.
[вложение удалено администратором]
Без макросов, с помощью "Найти и заменить" можно сделать так:
1) галочка "Подстановочные знаки";
2) поле "Найти": ([0-9])-([0-9])
3) поле "Заменить": \1^=\2
Пояснения
Поле "Найти". Круглые скобки нужны, чтобы потом в поле "Заменить" можно было обращаться к нужному фрагменту. Первому фрагменту в круглых скобках присваивается номер 1 и затем в поле "Заменить" к нему обращаемся так "\1".
Поле "Заменить". Тире в поле "Заменить" можно вставить с помощью кнопки "Специальный". Я выбрал там "Короткое тире".
Такой способ заменяет дефисы и в тексте, а мне нужно только в таблицах.
Замена только в таблицах:
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
Огромное спасибо! Все получилось!