我正在尝试使此代码正常工作,但它一直在随机替换我要替换为“ ID”的整个句子。我正在使用ID00数字替换文本。有时,替换将是全部上限。我无法弄清楚应如何保留其外壳。 例如:将ID001替换为“这是一个例子。我想要这个。”这样做是:“这是一个例子。我想这样做。”
With Selection.Find
.ClearFormatting
chunks = Round(Len(replace) / 250, 0)
If Len(replace) Mod 250 > 0 Then chunks = chunks + 1
If chunks = 1 Then
.Execute FindText:=search, ReplaceWith:=replace, replace:=wdReplaceAll
Else
.Execute FindText:=search, ReplaceWith:="{1}", replace:=wdReplaceAll
' Replace the text in chunks of less than 255 characters
For i = 1 To chunks
chunk = Mid(replace, ((i - 1) * 250) + 1, 250)
If i < chunks Then chunk = chunk & "{" & (i + 1) & "}"
.Execute FindText:="{" & i & "}", ReplaceWith:=chunk, replace:=wdReplaceAll
Next i
End If
结尾为
答案 0 :(得分:0)
尝试使用MatchCase:= False。例如:
.Execute FindText:=search, ReplaceWith:=replace, MatchCase:=False, Replace:=wdReplaceAll
答案 1 :(得分:0)
我知道这是一篇旧文章,但是我有同样的问题。 在玩了一段时间之后,这对我有所帮助。
我尝试过在替换文本上不设置任何格式,并尝试使用特定格式设置为不大写-仍然全部大写。
我发现,如果我搜索的整个文本都是大写的,它将全部变为大写。如果搜索文本中的第一个字母为大写,则替换文本中的第一个字母为大写。无论您采用哪种格式。
我有一个名为“ C-PTFE CIP”的文本,并希望在某些情况下添加更多内容,所有这些内容全部用大写出来。我的解决方法是在文本中添加更多“ ix C-PTFE CIP”,然后在替换文本中添加“ ix”。现在一切都随我所愿,不仅是小写字母,而且是我想要的。
因此,对于您的情况,请尽可能将“ ID”更改为“ id”,或者如果您很幸运,可以添加更多文本。
希望这可以在将来对其他人有所帮助。我不知道为什么格式不会覆盖搜索到的文本。也许文档中有其他设置?