思路:因文中有真正的问号,不能直接替换。但是真正的问号之后往往是引号或者是回车符等,而人名中间的岩森问号前后都是中文字符。依据此粗咐亩特点进行通配符替换。
查简哪找:\?[一-龥]
替换:·
注意勾选使用通配符。问号可以直接复制文中的问号,注意区分半角和全角的问号。
先记下一个东西:全角情况下,WORD中的空格为方格形状;半角情况下,空格为小黑点形状。 打开word,"工具"→"宏"→"Visual Basic 编辑器",在主窗体复制以下内容后粘贴,保存.关闭编辑器,在"工具"→"宏"→"宏"里调用. Sub ToggleInterpunction()'中英文标点互换 Dim ChineseInterpunction() As Variant, EnglishInterpunction() As Variant Dim myArray1() As Variant, myArray2() As Variant, strFind As String, strRep As String Dim msgResult As VbMsgBoxResult, N As Byte '定义一个中文标点的数组对象 ChineseInterpunction = Array("、","。", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》") '定义一个英文标点的数组对象 EnglishInterpunction = Array(",",".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">") '提示用户交互的MSGBOX对话框 msgResult = MsgBox("您想中英标点互换吗?按Y将中文标点转为英文标点,按N将英文标点转为中文标点!", vbYesNoCancel) Select Case msgResult Case vbCancel Exit Sub '如果用户选择了取消按钮,则退出程序运行 Case vbYes '如果用户选择了YES,则将中文标点转换为英文标键穗带点 myArray1 = ChineseInterpunction myArray2 = EnglishInterpunction strFind = "" (*)"" strRep = """\1""" Case vbNo '如果用户选择了NO,则将英文标点转换为中文标点 myArray1 = EnglishInterpunction myArray2 = ChineseInterpunction strFind = """(*)""" strRep = ""\1"" End Select Application.ScreenUpdating = False '关闭屏幕更新 For N = 0 To UBound(ChineseInterpunction) '从数组的下标到上标间作一个循稿芦环 With ActiveDocument.Content.Find .ClearFormatting '不限定查找格式 .MatchWildcards = False '族蔽不使用通配符 '查找相应的英文标点,替换为对应的中文标点 .Execute findtext:=myArray1(N), replacewith:=myArray2(N), Replace:=wdReplaceAll End With Nex
正确便捷的方法是:Ctrl+H打开替换对话框,单击高简禅级或者更多,勾选使用通配符,在查找框中输入:(<*)[。?\?](*>)
在替换为框中输入:\1·\2
然后单击全部替换即可。
这才是正确的方顷培法,这才是真正高手所使用的方法。
有关文件批量处理方面的功能需求,可试试我拦乎尘开发的 《文件批量处理百宝箱V8.0》及以上版本。 本例可使用百宝箱主界面的“批替换”功能。
1、在WORD中,按住CTRL + F
出现查找,替换,定坦液则位
2、让棚你选择替换
把埋竖“杰克。某某”这个内容放在"查找内容[N]"中
在“替换为[I]输入:杰克·某某
3、选择"全部替换"
查找、替换 将“。”替换成“.”就可以了!!!