Word中批量进行中英文标点的转换

求能一次性进行所有标点转换的方法,而不是简单地逐个替换!

嗯,这个问题很有意思,我测试过,下面这个方案是完全可靠的,可以实现中英文标点的相互转换,只是记得,转英文按是,转中文按否。 那个转换大小写的方案是无法转换符号地。

先记下一个东西:全角情况下,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

Next

With ActiveDocument.Content.Find

.ClearFormatting '不限定查找格式

.MatchWildcards = True '使用通配符

.Execute findtext:=strFind, replacewith:=strRep, Replace:=wdReplaceAll

End With

Application.ScreenUpdating = True '恢复屏幕更新

End Sub追问

我用的是Office 2010,找不到你说的菜单命令……

追答

我在office 2007中测试通过,是在开发工具一栏中,新建宏,删除原有全部代码,将这段代码粘贴进去并保存。 2010变化不大,宏功能应该仍存在。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-15
选中需要转换的字符之后,单击“开始”选项卡中的图标“Aa”,即“更改大小写”功能按钮,打开如图1所示列表。需要将全角字符转换为半角时单击“半角”,需要将半角字符转换为全角时单击“全角”完成转换。还有英文的大小写之间的转换 。追问

只有半角、全角,没有中、英文标点的转换

追答

半角、全角的转换,就能把标点转换了。

第2个回答  2011-11-15
按ctrl+F 然后选择替换,用半角标点替换全角标点就OK了,你试试
第3个回答  2011-11-15
查找,替换就可以了。
相似回答