Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Alceste от 04 декабря 2018, 21:48

Название: Word VBA Макросы: Можно ли перед всеми числами поставить определённый знак?
Отправлено: Alceste от 04 декабря 2018, 21:48
Есть ли возможность перед всеми числами (именно числами, а не цифрами) в тексте поставить определённый символ?

Необходимо, к примеру, чтобы такой текст:
"Слова слова 1548 слова слова 545 слова."
Преобразовался в:
"Слова слова #1548 слова слова #545 слова."
Название: Re: Word VBA Макросы: Можно ли перед всеми числами поставить определённый знак?
Отправлено: Администратор от 04 декабря 2018, 22:25
То же самое можно сделать с помощью 'Найти и заменить', т.е. без макроса.
Макрос работает только с целыми числами. То есть  с дробными, в которых есть запятая или точка, не работает.
Также в числе не должно быть пробелов между разрядами.

Знак подставляется в этой строке:
.Replacement.Text = "#\1"

Sub Макрос()
    With ActiveDocument.Range.find
        .Text = "([0-9]{1;})"
        .Replacement.Text = "#\1"
        .MatchWildcards = True
        .Execute Replace:=wdReplaceAll
    End With
    MsgBox "Готово.", vbInformation
End Sub
Название: Re: Word VBA Макросы: Можно ли перед всеми числами поставить определённый знак?
Отправлено: Alceste от 06 декабря 2018, 08:50
Большое спасибо!
Всё работает идеально.