|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.03.2020, 13:20 | #1 |
Новичок
Джуниор
Регистрация: 26.03.2020
Сообщений: 3
|
Поменять в документе Word все вхождения одного стиля на другой
Есть некоторый список "легальных стилей". Задача - во всём документе оставить легальные как есть, а нелегальные поменять на "ОСНОВНОЙ ТЕКСТ". Макрос не работает, меняет что не надо и не меняет что надо. Что я не так делаю? Может я вообще не то меняю?
Private Sub replaceStyles() ' создаю массив допустимых стилей Dim validStyles() As String Dim strValidStyles As String strValidStyles = "_АННОТАЦИЯ_,_ЗАГОЛОВОК ЛИТЕРАТУРА_,_КЛЮЧЕВЫЕ СЛОВА_,_НАЗВАНИЕ СТАТЬИ_,_ОСНОВНОЙ ТЕКСТ_,_ПОДРАЗДЕЛ_,_РАЗДЕЛ_,_РИСУНО К И ТАБЛИЦА_,_СНОСКА_,_СПИСОК АВТОРОВ_" validStyles() = Split(strValidStyles, ",") Dim i As Integer Dim v As Integer Dim valid As Boolean ' по всем стилям в документе For i = 1 To ActiveDocument.Styles.count ' если они используются If ActiveDocument.Styles(i).InUse Then valid = False ' соответствуют ли они легальным стилям For v = LBound(validStyles) To UBound(validStyles) If ActiveDocument.Styles(i).NameLocal = validStyles(v) Then valid = True Exit For End If Next v ' если нет - меняем на "_ОСНОВНОЙ ТЕКСТ_" везде, где встретятся If valid = False Then With ActiveDocument.Range.Find .ClearFormatting .Text = "" .Style = ActiveDocument.Styles(i).NameLocal .Replacement.Style = "_ОСНОВНОЙ ТЕКСТ_" .Execute Replace:=wdReplaceAll End With End If End If Next i End Sub |
26.03.2020, 19:56 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать процедуру удаления из из ТИПИЗИРОВАННОГО файла повторные вхождения одного и того же числа(паскаль) | Космодемьян | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 17.02.2019 17:10 |
Нужна программка, которая связывает два документа (например, Word). Если в документе № 1 я поменяю текст, то он и в документе № 2 автоматически изменится | Эльф085 | Общие вопросы по программированию, компьютерный форум | 21 | 06.07.2017 21:22 |
проблема при копировании одного столбца из одного файла в другой файл | tanunya | Помощь студентам | 0 | 24.02.2012 21:30 |
VBA Word Перенос текста из ячеек таблицы одного файла в другой | bietins | Microsoft Office Word | 2 | 13.09.2011 16:04 |
Переход между закладками в тексте одного стиля | Окоча Юра | Microsoft Office Word | 3 | 01.02.2011 00:55 |