Всем доброго времени суток. Прошу помощи в написании макроса.
Имеется огромный документ, в котором наименование источников необходимо привести к "ссылочному" варианту. Вручную перебирать более 1500 источников было бы крайне утомительно, да и задача время от времени возникает.
В документе .docx (хотя задача может быть решена и для текста в ячейке A1 в документе .xlsx) необходимо найти первый фрагмент, заключенный между служебными словами ref и заменить такой фрагмент во всем тексте на [1] и т.д.
Было: ref[ivanov-14]ref, тут текст ref[!VasilyevMA]ref еще текст [text], ref[ivanov-14]ref
Стало: [1], тут текст [2] еще текст [text], [1]
Другими словами, произвести замену элементов по всему тексту на порядковые номера, по порядку следования.
За основу можно взять скрипт ():
Имеется огромный документ, в котором наименование источников необходимо привести к "ссылочному" варианту. Вручную перебирать более 1500 источников было бы крайне утомительно, да и задача время от времени возникает.
В документе .docx (хотя задача может быть решена и для текста в ячейке A1 в документе .xlsx) необходимо найти первый фрагмент, заключенный между служебными словами ref и заменить такой фрагмент во всем тексте на [1] и т.д.
Было: ref[ivanov-14]ref, тут текст ref[!VasilyevMA]ref еще текст [text], ref[ivanov-14]ref
Стало: [1], тут текст [2] еще текст [text], [1]
Другими словами, произвести замену элементов по всему тексту на порядковые номера, по порядку следования.
За основу можно взять скрипт ():
| Код |
|---|
Sub ReplaceText() Application.ScreenUpdating = False Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting .Replacement.Text = "" Do While .Execute(FindText:="\[*\]", MatchWildcards:=True) .Execute FindText:="[[\] ]", MatchWildcards:=True, _ ReplaceWith:="", Replace:=wdReplaceAll, Wrap:=wdFindStop Loop End With Application.ScreenUpdating = True End Sub |
Изменено: - 29.11.2022 10:24:10