WORD里随便录制个宏,然后编辑宏,把里面录制的宏全部删除,再把下面的代码贴进去
,把里面的国家和城市数组(countries、cities)内容分别改成你的相应的国家和城市,
然后运行batchReplace宏,就可以把全文中的“北京”全部换成“中国北京”。
为了防止正文中已经有“中国北京”,若是不做处理,直接把北京替换成中国北京,
就会变成“中国中国北京”。因此,得先把“中国北京”替换成“北京”,然后再
把“北京”替换成“中国北京”。
Sub batchReplace()
'
' 批量替换宏
'
Dim countries, cities, i
countries = Array("中国", "美国", "法国", "英国", "俄罗斯")
cities = Array("北京", "华盛顿", "巴黎", "伦敦", "莫斯哥")
For i = 0 To UBound(countries)
'先把"中国北京"替换为"北京",若是一开始就把"北京"替换为"中国北京",
'结果就可能出现"中国中国北京"
replaceText countries(i) + cities(i), cities(i)
'再把"北京"替换为"中国北京"
replaceText cities(i), countries(i) + cities(i)
Next
End Sub
Sub replaceText(ByVal findText As String, ByVal replaceText As String)
'
'替换文本子过程,供batchReplace调用
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = findText
.Replacement.Text = replaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
【 在 kenken90 (kenken) 的大作中提到: 】
: 我意思第一次把文章当中的巴黎全部替换了,第2次把文章当中的北京全部替换,第3次把文章当中的伦敦全部替换,第4次把文章当中的纽约全部替换,但是还有东京,莫斯科之类100个城市。这样的话需要分别查找替换100次。
: 发自「今日水木 on Redmi K20 Pro」
--
修改:callmebbser FROM 58.23.246.*
FROM 58.23.246.*