Excel VBA操作Word时如何查找并替换文档中第二个$符号
Word VBA定位替换第二个$符号的实现方法
直接通过计数器标记匹配次数即可实现需求,修改后的代码如下:
Dim matchCount As Integer For Each oRange In WordDoc.StoryRanges matchCount = 0 ' 每个文档分区初始化计数 With oRange With .Find .Forward = True .Text = "$" .Wrap = wdFindStop ' 匹配到分区末尾就停止,避免死循环 End With ' 循环查找直到没有匹配结果 Do While .Find.Execute = True matchCount = matchCount + 1 If matchCount = 2 Then .Expand Unit:=4 .Text = Price Exit Do ' 找到第二个目标后直接退出,无需继续查找 End If ' 移动当前Range起始位置到匹配结果之后,避免重复匹配同一个$ .Start = .End Loop End With Next oRange
方案说明
- 你之前只能匹配到第一个或最后一个目标,是因为单次
Execute只会返回第一个匹配结果,没有循环触发后续查找逻辑 - 该方案不需要做全量替换再回滚的操作,自然可以避开之前遇到的
Expand方法不生效的问题 - 代码兼容所有文档分区(正文、页眉、页脚、文本框等)的匹配查找
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

