|
大家看看这种删除空格的方法行不行,还有什么问题:
下面的代码其实是通过录制了三个宏而拼凑起来的,目的是删除汉字相邻的空格,而英文字符之间的空格不管是什么类型,也不管有多少,一律保留一个半角空格。
我不知道怎么优化,也不知道还存在什么问题,请大家看看,帮忙优化和改进一下。
别外,空格除了半角、全角和制表符以外,还有什么类型?
Sub Macro1()
'将有空格的地方,不管是什么空格,也不管空格的数量多少,一律替换为一个半角空格
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^w"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
'删除汉字后英文前的半角空格
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([!^1-^127]) "
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
'删除英文后汉字前的半角空格
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " ([!^1-^127])"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
[ 本帖最后由 imljs 于 2009-12-16 00:17 编辑 ] |
|