我有一个包含约1000个用于替换的单词对的列表。通过循环遍历形状,我必须一次又一次地遍历单词对。为了让它运行得更快,我尝试在执行替换之前选择所有形状,但它不起作用。任何建议将不胜感激。如何在Word中使用VBA同时替换形状中的单词(不通过形状循环)
的电流代码(对存储在一个名为密钥列表()和一个名为颂歌字典)相关部分:
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
shape_num = ActiveDocument.Shapes.count
On Error GoTo errhandler
For i = 1 To shape_num
If ActiveDocument.Shapes(i).TextFrame.HasText Then
ActiveDocument.Shapes(i).Select
For j = 1 To lexicon_num
SrcText = key(j)
With Selection.Find
.Text = SrcText
.Replacement.Text = oDic.Item(SrcText)
.Execute Replace:=wdReplaceAll
End With
Next j
End If
continue_shape:
Next i
exit sub
errhandler:
Err.Clear
Resume continue_shape
您可能要添加当前的代码?至于你的问题,我认为除了循环之外别无他法。这是AFAIK。 – L42 2014-10-02 02:40:12
@ L42,感谢您的信息和建议。我已经添加了我的代码:) – null 2014-10-06 02:51:30
“形状”是什么意思? – user3165438 2014-10-06 09:58:10