Ms word MS Word OLE-用图像替换文本。第一块代码有效,第二块则无效

Ms word MS Word OLE-用图像替换文本。第一块代码有效,第二块则无效,ms-word,lotus-notes,ole,Ms Word,Lotus Notes,Ole,我正在编辑lotusscript中的一些代码,以使用OLE从模板创建word文档,并正在进行查找和替换以添加图像。这适用于第一个图像,但不适用于第二个图像 objWord.Selection.Find.Execute "{{image1}}",False, True,,,,, 1,,,,,,, objWord.Selection.Extend If (objWord.Selection.Characters.Count > 1) Then If (signaturefilename

我正在编辑lotusscript中的一些代码,以使用OLE从模板创建word文档,并正在进行查找和替换以添加图像。这适用于第一个图像,但不适用于第二个图像

objWord.Selection.Find.Execute "{{image1}}",False, True,,,,, 1,,,,,,,
objWord.Selection.Extend
If (objWord.Selection.Characters.Count > 1) Then
    If (signaturefilename = "") Then
        objWord.Selection.Find.Execute "{{image1}}", False, True,,,,, 1,, " ", 2,,,,        
    Else
        Call objWord.Selection.InlineShapes.AddPicture(tempdir + "\" + imagefilename, False, True,)     
    End If
End If

objWord.Selection.Find.Execute "{{image2}}",False, True,,,,, 1,,,,,,,
objWord.Selection.Extend
If (objWord.Selection.Characters.Count > 1) Then
    If (signaturefilename = "") Then
        objWord.Selection.Find.Execute "{{image2}}", False, True,,,,, 1,, " ", 2,,,,        
    Else
        Call objWord.Selection.InlineShapes.AddPicture(tempdir + "\" + imagefilename, False, True,)     
    End If
End If
代码的第一部分工作得很完美,但是第二部分并没有像我预期的那样用图像替换第二段文本

我期待第二个Find.Execute来查找第二个文本块,但是它最终替换了文档中的所有文本

有什么明显的事情我忽略了吗

谢谢


A

好的-解决了。这是:

objWord.Selection.Extend
这需要删除。虽然第一次没有选择整个文档,但第二次选择了。这项技术现在正完美地发挥作用。谢谢Richard的指点

此外,我还使用了:

objWord.Visible = True

帮助调试。

我不太了解Word类,但在我看来,由于第一次操作,您已将选择范围缩小到文档中(最初)包含“{image1}”的部分。所以在你下一次查找。执行之前,你必须展开选择,使其到达文档的末尾。是的,同意。我假设“objWord.Selection.Find.Execute”将退出并查找下一个字符串。我发现微软的文档对这应该如何工作有一点帮助…:(