0

我们有一个第 3 方 VBA 模块,我们正在对其进行调整以满足我们的需求。我们正在尝试做的是在 Word 文档的页脚中搜索文件路径,并将文件路径替换为(第三方生成的)文档 ID。

该代码实际上目前非常简单,几乎可以工作。我们用所需的文档 ID 覆盖文档页脚中的文件路径没有问题,但是目前我们的代码正在覆盖Word 文档页脚中的所有文本(页码、编写文档的人的首字母等)。我们只想要文件路径被替换。

任何人都可以建议我们在下面的代码中哪里出错了吗?该代码当前搜索现有 ID;如果找不到,但找到了它试图覆盖的文件路径;否则它会从头开始将文档 ID 写入文档:

Set tSearch = doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Find
tSearch.Text = idStr
If Not tSearch.Execute() Then
    'Current ID wasn't found; look for and replace an older one.
    tSearch.MatchWildcards = True
    tSearch.Text = "?:\*"
    If Not tSearch.Execute(ReplaceWith:=idStr) Then
        doc.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = False
        doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = idStr
        doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Size = 8
    End If
End If
4

1 回答 1

0

对于初学者来说,搜索可能总是会失败。查找文本需要更像:

tSearch.Text = "?:\\* "

反斜杠是控制字符,需要用文字字符标记,偶然是反斜杠。此外,* 不是真正的“查找所有内容”符号,而是将其视为“查找所有内容,直到”。在这种情况下,是一个空格字符,但它可以是句点、行尾等。

于 2012-07-02T16:12:19.220 回答