我有一个word文档,想要用翻译替换每个单词,同时保持所有格式不变。我不能使用“查找和替换”对话框,因为我没有尝试替换一组特定的单词,但我正在替换所有单词。我如何使用VBA做到这一点?
更新 我正在使用Word 2010.到目前为止,我可以使用ActiveDocument.Range.Words属性循环使用单词,但我不知道如何用它的翻译替换这些单词?在替换时,我希望保留所有格式,如字体名称,大小,颜色,背景颜色,下划线,粗体等所有格式选项。
答案 0 :(得分:0)
我猜你有一系列单词("apple", "book", "cat")
和他们的翻译数组("pomme", "livre", "chat")
。
您的目标是逐个批量更改单词。
所以你需要一个循环。这是可能有用的循环(如果我正确理解你的问题)。
对两个阵列进行批量更改:
Option Explicit
Sub replaceArrayForArray()
'
'to create array use prefix\suffix and replacing tool http://textmechanic.com/
'
'
findArray = Array("apple", "book", "cat")
replArray = Array("pomme", "livre", "chat")
For i = 0 To UBound(findArray)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = findArray(i)
.Replacement.Text = replArray(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute replace:=wdReplaceAll
Next i
End Sub
如果您使用数字并且您必须批量更改数字而不重叠,则可能会出现更多难以解决的问题。使用此处或多或少描述的相同宏的方法: MS Word Macro to increment all numbers in word document 。