以下代码修改了replace函数的参数,请再测试: Sub KSPPtoASCII3() Dim a As String, i As Byte Application.ScreenUpdating = False With ActiveDocument.Content.Find .ClearFormatting .Text = "[" & ChrW(61480) & "-" & ChrW(61565) & "]{1,}" .MatchWildcards = True Do While .Execute a = .Parent.Text For i = 1 To VBA.Len(a) a = VBA.Replace(a, Mid(a, i, 1), ChrW(AscW(Mid(a, i, 1)) + 4096), , 1) Next With .Parent .Text = a .Font.Name = "宋体" .Font.NameAscii = "Times New Roman" .Font.NameOther = "Times New Roman" .Collapse wdCollapseEnd End With Loop End With Application.ScreenUpdating = True End Sub "{1,}"是查找替换中的查找代码,意思为一个以上前面的字符(中括号内的字符范围),总的意思就是查找一个尽可能长的金山字体字符串 |