|
本帖最后由 xiang1162090014 于 2019-12-9 13:51 编辑
请教:有这样一个word文档,
里面有这样一些字符,需要进行替换:
≌ △ ∠ °﹣ ⊥ Rt × sin cos ∴ ∵ ≥ ⊙ ∽
原本的方法是,在宏里面进行逐一进行查找替换,共查找替换 n 次。- With Selection.Find
- .Text = "≌"
- .Replacement.Text = "全等"
- ...
- End With
- Selection.Find.Execute Replace:=wdReplaceAll
- 第二遍查找△替换为“三角”.
- 第三遍查找∠替换为“角”。
- ...
复制代码
但是速度有些慢,word 还有无响应的情况。
有其他老师说,可以使用一个字典来进行替换
于是修改为如下:
- Sub add_dollars()
- Dim dic As Object
- Set dic = CreateObject("Scripting.Dictionary")
- dic.Add "≌", "全等"
- dic.Add "△", "三角"
- dic.Add "∠", "角"
- dic.Add "°", "度"
- dic.Add "﹣", "减"
- dic.Add "⊥", "垂直"
- dic.Add "Rt", "直角三角形"
-
- Selection.Find.ClearFormatting
- Selection.Find.Replacement.ClearFormatting
- With Selection.Find
- .Text = "([≌△∠°﹣⊥])"
- .Replacement.Text = dic("\1")
- .Forward = True
- .Wrap = wdFindAsk
- .Format = False
- .MatchCase = False
- .MatchWholeWord = False
- .MatchByte = False
- .MatchWildcards = True
- .MatchSoundsLike = False
- .MatchAllWordForms = False
- End With
- Selection.Find.Execute Replace:=wdReplaceAll
-
- End Sub
复制代码
但是这样替换出来的结果为空,感觉替换文本处写的不对,
因此想请教一下,
Replacement.Text =
这个位置是不是写错了?
--附文档
|
|