查找用宏替换MS Word

时间:2018-05-01 19:51:28

标签: vba ms-word

我编写了一个宏,用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:\\用户\\我\\ Documents \\ test1.xlsx"

有没有人有什么建议可能是什么问题?

1 个答案:

答案 0 :(得分:2)

在查找和替换文本时,通配符和反斜杠不能很好地协同工作 - 反斜杠有其特定用途。

要在这种情况下替换反斜杠,请使用其等效的ASCII:"^92^92"而不是"\\"