1

我有一个 word 文档,想用翻译替换每个单词,同时保持所有格式不变。我不能使用“查找和替换”对话框,因为我没有尝试替换一组特定的单词,而是替换了所有单词。我如何使用 VBA 做到这一点?

更新 我正在使用 Word 2010。到目前为止,我可以使用 ActiveDocument.Range.Words 属性遍历单词,但我不知道如何用翻译替换这些单词?替换时,我想保留所有格式,如字体名称、大小、颜色、背景颜色、下划线、粗体,简而言之,所有格式选项都保持原样。

4

1 回答 1

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 increase all numbers in word document

于 2016-02-22T16:04:20.177 回答