- 主题:有没有办法这样批量查找替换
比如一个文档中出现北京,都替换为中国北京。巴黎,都替换为法国巴黎。100和城市都替换为国家+城市。
有现成的excel两列。
有没有批量办法,要不然要查找100次。
发自「今日水木 on Redmi K20 Pro」
--
FROM 101.84.1.*
软件查找替换又不需要你手工替换。
【 在 kenken90 (kenken) 的大作中提到: 】
: 比如一个文档中出现北京,都替换为中国北京。巴黎,都替换为法国巴黎。100和城市都替换为国家+城市。
: 有现成的excel两列。
: 有没有批量办法,要不然要查找100次。
: ...................
--
FROM 112.21.155.*
不是有个全部替换?
--
FROM 152.78.0.*
我意思第一次把文章当中的巴黎全部替换了,第2次把文章当中的北京全部替换,第3次把文章当中的伦敦全部替换,第4次把文章当中的纽约全部替换,但是还有东京,莫斯科之类100个城市。这样的话需要分别查找替换100次。
【 在 one4all4one 的大作中提到: 】
:
: 不是有个全部替换?
: --
发自「今日水木 on Redmi K20 Pro」
--
FROM 101.84.1.*
用sr32可以
【 在 kenken90 的大作中提到: 】
: 比如一个文档中出现北京,都替换为中国北京。巴黎,都替换为法国巴黎。100和城市都替换为国家+城市。
: 有现成的excel两列。
: 有没有批量办法,要不然要查找100次。
: ...................
--来自微水木3.5.1
--
FROM 118.29.36.*
excel不是有条件语句吗?
【 在 kenken90 (kenken) 的大作中提到: 】
我意思第一次把文章当中的巴黎全部替换了,第2次把文章当中的北京全部替换,第3次把文章当中的伦敦全部替换,第4次把文章当中的纽约全部替换,但是还有东京,莫斯科之类100个城市。这样的话需要分别查找替换100次。
【 在 one4all4one 的大作中提到: 】
:
: 不是有个全部替换?
: --
发自「今日水木 on Redmi K20 Pro」
--
FROM 49.74.49.*
VBA一个循环的事儿
把这需要替换掉的和替换后的存两列
【 在 kenken90 的大作中提到: 】
: 我意思第一次把文章当中的巴黎全部替换了,第2次把文章当中的北京全部替换,第3次把文章当中的伦敦全部替换,第4次把文章当中的纽约全部替换,但是还有东京,莫斯科之类100个城市。这样的话需要分别查找替换100次。
: 发自「今日水木 on Redmi K20 Pro」
--
FROM 92.40.168.*
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.*
太棒了,非常感谢!
【 在 callmebbser 的大作中提到: 】
:
: 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
:
:
:
: --
发自「今日水木 on Redmi K20 Pro」
--
FROM 120.204.143.*
可以改进一下,替换前的城市名从单元格里取,替换后的名字也从单元格里取。循环从第一个城市名开始,到最后一个城市名(通过下一行是空来判断)结束。
【 在 callmebbser (BBSer) 的大作中提到: 】
: WORD里随便录制个宏,然后编辑宏,把里面录制的宏全部删除,再把下面的代码贴进去
: ,把里面的国家和城市数组(countries、cities)内容分别改成你的相应的国家和城市,
: 然后运行batchReplace宏,就可以把全文中的“北京”全部换成“中国北京”。
: ...................
--
FROM 58.216.152.*