|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
也可试试另一种方法,运行前提条件是得有可靠的繁简汉字对照表的纯文本文件,对照表中的统一格式为:每行均为三个字符,其中第一个为繁体字,第二个为分隔符(不限),第三个为简体字。这样就不用借助WORD自带的中文繁简转换功能而直接定位替换指定字符,速度应该快些。但感觉程序运行慢主要还是因文档太大,如果文件小些,其运行速度(每秒处理的字符数)将明显提高。
另外,这样的转换只是一一对应的关系,未考虑繁简转换的一些特殊性。如果要简转繁就更复杂了。- Sub test2()
- Dim fs
- Dim f
- Dim d
- Dim strText As String
- Dim aField As Field
- Dim strChinese As String
- Dim i As Long
- Dim n As Long
-
- On Error Resume Next
- Set fs = CreateObject("Scripting.FileSystemObject")
- Set f = fs.OpenTextFile("E:\汉字繁简对照.txt", 1, , -2) '引号部分为自行指定的繁简对照表全文件名
- Set d = CreateObject("Scripting.Dictionary")
- Do While f.AtEndOfStream <> True
- strText = f.ReadLine
- d.Add Left(strText, 1), Right(strText, 1)
- Loop
- f.Close
-
- Application.ScreenUpdating = False
- For Each aField In ActiveDocument.Fields
- If aField.Type = wdFieldFormula Then
- strChinese = aField.Code.Characters.Last.Previous.Text
- If d.Exists(strChinese) = True Then
- aField.Code.Characters.Last.Previous.Text = d(strChinese)
- n = n + 1
- End If
- i = i + 1
- End If
- Next
- MsgBox "处理完毕。共对" & i & "个Eq域中的" & n & "个进行了中文繁简转换。"
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|