【发布时间】:2018-08-14 01:09:26
【问题描述】:
这是我在 Word 中的第一次 VBA 尝试。我想查找多个单词匹配并将它们全部替换为我指定的字符串,最好来自外部文档。在 200 页的文档中,我想用 1000 个不同的翻译替换 1000 个不同的单词。现在我被卡住了,因为我无法让这个功能在我的 Word 2010 文本上工作。这段代码是否正确,我该如何实现?
Function R(StrFind As String, StrReplace As String)
Application.ScreenUpdating = False
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = StrFind
.Replacement.Text = StrReplace
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
MsgBox R("q", "a")
MsgBox R("w", "a")
MsgBox R("e", "a")
MsgBox R("r", "a")
MsgBox R("t", "a")
MsgBox R("y", "a")
ActiveDocument.UndoClear
Application.ScreenUpdating = True
End Function
【问题讨论】:
-
你为什么使用...函数...?
-
显示你想插入的代码
-
@DisplayName 我有 200 页英文文档,我想用保加利亚语翻译替换最常用的英文单词。
-
@K.Dᴀᴠɪs 我也可以用 if else 来实现。我的函数是它不能作为宏工作的问题吗?用“a”替换所有“q”、“w”、“e”、“r”、“t”、“y”只是一个例子。
-
但为什么不是 Sub?
标签: string vba replace ms-word