Поменять все вхождения стиля на другой

Есть список "легальных" стилей в документе. Надо все вхождения "нелегальных" стилей поменять на некоторый. Вроде бы простой код, но не работает. В чём ошибка?

Private Sub replaceStyles() ' создаю массив допустимых стилей Dim validStyles() As String Dim strValidStyles As String strValidStyles = "АННОТАЦИЯ,ЗАГОЛОВОК ЛИТЕРАТУРА,КЛЮЧЕВЫЕ СЛОВА,НАЗВАНИЕ СТАТЬИ,ОСНОВНОЙ ТЕКСТ,ПОДРАЗДЕЛ,РАЗДЕЛ,РИСУНОК И ТАБЛИЦА,СНОСКА,СПИСОК АВТОРОВ" validStyles() = Split(strValidStyles, ",")

Dim i As Integer
Dim v As Integer

' по всем стилям в документе
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)
                .Replacement.Style = "_ОСНОВНОЙ ТЕКСТ_"
                .Execute Replace:=wdReplaceAll
            End With
        End If
    End If
Next i

End Sub


Ответы (0 шт):