Найти заменить MS Word с макросом - PullRequest
0 голосов
/ 01 мая 2018

Я написал макрос, который заменяет путь к файлу с текущим расположением файлов в Word 2016.

Dim i As Long, j As Long
Dim s As String
s = ActiveDocument.Path
Dim sa As String
sa = Replace(s + "\test1.xlxs", "\", "\\")

For Each myStoryRange In ActiveDocument.StoryRanges
    With myStoryRange.Find
        .Text = "C:*test1.xlsx"
        .Replacement.Text = sa
        .MatchWildcards = True
        .Wrap = wdFindContinue
        .Execute Replace:=wdReplaceAll
    End With
Next myStoryRange


End Sub

Это показывает ошибку "текст замены содержит номер группы, выходящий за пределы диапазона"

Переменная 'sa' содержит правильную строку, я проверял это во время выполнения. Также, когда я заменяю

.Replacement.Text = sa

с

.Replacement.Text = "bla"

Это работает. Во время выполнения примером 'sa' будет "C: \\ Users \\ Me \\ Documents \\ test1.xlsx"

У кого-нибудь есть предложения, в чем может быть проблема?

1 Ответ

0 голосов
/ 01 мая 2018

Подстановочные знаки и обратная косая черта плохо работают вместе при поиске и замене текста - обратная косая черта имеет свое собственное использование.

Чтобы заменить обратную косую черту в этом случае, используйте ее эквивалент ASCII: "^92^92" вместо "\\".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...