我们有第三方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
答案 0 :(得分:0)
首先,搜索可能总是失败。查找文本需要更像:
tSearch.Text = "?:\\* "
反斜杠是一个控制字符,需要用文字字符标记,这很可能是反斜杠。 *也不是真正的“找到一切”符号,而是将其视为“直到找到所有东西”。在这种情况下,空格字符可以是句点,行尾等。