+ -
当前位置:首页 → 问答吧 → 请教去除中文字间空格的问题

请教去除中文字间空格的问题

时间:2011-01-11

来源:互联网

写了一个去除中文字间空格(保留英文间空格)的宏,在运行中发现有几个问题:一是运行前要将光标定在开头,二是无法一次性将所有空格删掉,而是要一遍遍重复运行才能一个个删除。请高手给予指点完善。另注:第四行代码中[  ]中为一个全角空格加一个半角空格。

Sub 去除中文字间空格()
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "([!a-zA-Z])([  ]{1,})([!a-zA-Z])"
        .Replacement.Text = "\1\3"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = True
        .MatchByte = False
         End With
         Selection.Find.Execute Replace:=wdReplaceAll
End Sub

作者: 润彩绘真   发布时间: 2011-01-11

应该没什么问题吧,没什么文件测试,简单测试是没问题的。
不过中间的括号可以不要,中间部分不需要捕获

[ 本帖最后由 wudixin96 于 2011-1-11 10:53 编辑 ]

作者: wudixin96   发布时间: 2011-01-11