Vba 循环查找和替换,直到找不到匹配项,然后移动到下一个

Vba 循环查找和替换,直到找不到匹配项,然后移动到下一个,vba,ms-word,Vba,Ms Word,我是excel宏新手,我尽了最大努力来完成这项工作。我创建了下面的代码来使用占位符查找和替换不同行中的单词。问题是,如果占位符在Word文档中重复多次,则代码将替换仅找到的第一个占位符 With wDoc .Application.Selection.Find.Text = "$ph1" .Application.Selection.Find.Execute .Application.Selection = Sheet1.Range("A&q

我是excel宏新手,我尽了最大努力来完成这项工作。我创建了下面的代码来使用占位符查找和替换不同行中的单词。问题是,如果占位符在Word文档中重复多次,则代码将替换仅找到的第一个占位符

With wDoc
    .Application.Selection.Find.Text = "$ph1"
    .Application.Selection.Find.Execute
    .Application.Selection = Sheet1.Range("A" & i)
    .Application.Selection.EndOf
    
    .Application.Selection.Find.Text = "$ph2"
    .Application.Selection.Find.Execute
    .Application.Selection = Sheet1.Range("B" & i)
    .Application.Selection.EndOf

    
wDoc.Close False
End With
只要搜索词=find,我就需要在每一行中循环/替换代码 然后移动到下一个,例如B


谢谢,

出现这个问题是因为您尚未阅读和理解find对象的方法和属性。将光标放在“查找”关键字上,然后按F1键。从弹出的列表中选择查找(obj)。这将打开“查找”对象的MS帮助页面。为什么要标记此Excel?事实上,它似乎是一种汞合金。@SJR-只有Excel vba使用工作表。不过,命名一个对象变量wDoc似乎确实意味着单词。使用范围对象而不是选择对象会有更好的代码。两者都可以与Find/Replace一起使用。出现这个问题是因为您尚未阅读和理解Find对象的方法和属性。将光标放在“查找”关键字上,然后按F1键。从弹出的列表中选择查找(obj)。这将打开“查找”对象的MS帮助页面。为什么要标记此Excel?事实上,它似乎是一种汞合金。@SJR-只有Excel vba使用工作表。不过,命名一个对象变量wDoc似乎确实意味着单词。使用范围对象而不是选择对象会有更好的代码。两者都可以与查找/替换一起使用。