Word VBA Макросы: Обойти ограничение количества символов замены.

Автор umbrunt, 23 июля 2019, 14:48

umbrunt

Есть макрос замены.
При запуске выдает ошибку "Слишком длинный строковый параметр".
Как можно обойти ограничение по символам?

Макрос
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
[свернуть]

Администратор

Попробуйте так. Не знаю, есть ли какие-нибудь "подводные камни" при использовании такого способа (с ходу не могу представить).

Макрос
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
[свернуть]