Word VBA - 替换页脚文本

时间:2012-05-28 09:36:02

标签: word-vba

我们有第三方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

1 个答案:

答案 0 :(得分:0)

首先,搜索可能总是失败。查找文本需要更像:

tSearch.Text = "?:\\* "

反斜杠是一个控制字符,需要用文字字符标记,这很可能是反斜杠。 *也不是真正的“找到一切”符号,而是将其视为“直到找到所有东西”。在这种情况下,空格字符可以是句点,行尾等。