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

Word => Макросы в Word => Тема начата: umbrunt от 23 июля 2019, 14:48

Название: Word VBA Макросы: Обойти ограничение количества символов замены.
Отправлено: umbrunt от 23 июля 2019, 14:48
Есть макрос замены.
При запуске выдает ошибку "Слишком длинный строковый параметр".
Как можно обойти ограничение по символам?

Макрос
Sub Макрос()

    ' Замена текста. Сюда дописывайте другие пары фраз.
    НайтиИЗаменить "text1", "TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1"
   
End Sub

Private Sub НайтиИЗаменить(ЧтоНайти As String, НовыйТекст As String)

    With ActiveDocument.Range.Find
        .Text = ЧтоНайти
        .Replacement.Text = НовыйТекст
        .Execute Replace:=wdReplaceOne
    End With
   
End Sub
[свернуть]
Название: Re: Word VBA Макросы: Обойти ограничение количества символов замены.
Отправлено: Администратор от 23 июля 2019, 14:58
Попробуйте так. Не знаю, есть ли какие-нибудь "подводные камни" при использовании такого способа (с ходу не могу представить).

Макрос
Sub Макрос()

    ' Замена текста. Сюда дописывайте другие пары фраз.
    НайтиИЗаменить "text1", "TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1TEXT1"
   
End Sub

Private Sub НайтиИЗаменить(ЧтоНайти As String, НовыйТекст As String)

    With ActiveDocument.Range.Find
        .Text = ЧтоНайти
        If .Execute = True Then
            .Parent.Text = НовыйТекст
        End If
    End With
   
End Sub
[свернуть]
Название: Re: Word VBA Макросы: Обойти ограничение количества символов замены.
Отправлено: umbrunt от 23 июля 2019, 15:27
СПАСИБО ОГРОМНОЕ!