急!!!Word文章标点符号半角不能转换全角

有没有人在啊,想请说下,急!!!Word文章标点符号半角不能转换全角?

很奇怪,在网上找的资料拼凑一篇论文,由于是拼凑的,论文中的标点符号有的是全角有的是半角,我想统一改程全角的标点,可奇怪的是就是不能改,半角标点是改成全角样式的了,可有的却依然占半格,不是整个满格字,在半角标点后面再加个标点就是全角标点,比如“学习,帮助”,在“学习,”后面再加个“,”这个新加的“,”是全角,而前面哪个却是半角,删除哪个都回到原来半角状态
最新回答
听说网名太长会被狗咬

2025-03-26 10:43:02

参考资料:

1、查找/替换所有标点符号;
在Word中无法实现一次性查找所有标点符号,所以需要只能一个一个的将半角标点替换为全角标点,英文常用标点符号一共17个,因此最多替17次就可以完成。

中文标点符号范围(非全部):
"。" "," ";" ":" "?" "!" "……" "—" "~" "〔" "〕" "《" "》" "‘" "’" "“" "”"共17个

英文标点符号范围(非全部),对应中文标点符号:
"." "," ";" ":" "?" "!" "…" "-" "~" "(" ")" "<" ">" "'" "'" """" """"
最后四个相当于' ' " "

2、将半角变为全角;
将所有文档全部转换为全角,Ctrl+A全选文档,选择菜单中的<格式>,<更改大小写>,选中<全角>,即将所选中的半角字符转换为全角。
再次a-z, A-Z转为半角,需要26*2=52次

=====================================
上述两法比较复杂,如果需要一次性转换,可以使用Word中的宏工具来实现,如果需要,给我发信息,我有收集该工具。

该转换工具代码如下<转自ExcelHome论坛,Word版块"守柔"版主>,可以自动添加至Word中:
* +++++++++++++++++++++++++++++
'* Created By I Love You_Word!@ExcelHome 2005-5-20 5:30:30
'仅测试于System: Windows NT Word: 10.0 Language: 2052
'^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------

Sub ReplaceEnglishInterpunctionInChinese()
'中英互译文档中将中文段落中的英文标点符号替换为中文标点符号
Dim i As Paragraph, ChineseInterpunction() As Variant, EnglishInterpunction() As Variant
Dim MyRange As Range, N As Byte
'定义一个中文标点的数组对象
ChineseInterpunction = Array("。", ",", ";", ":", "?", "!", "……", "—", "~", "〔", "〕", "《", "》", "‘", "’", "“", "”")
'定义一个英文标点的数组对象
EnglishInterpunction = Array(".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">", "'", "'", """", """")
On Error Resume Next
Application.ScreenUpdating = False '关闭屏幕更新
For Each i In ThisDocument.Paragraphs '遍历文档每个段落
If Asc(i.Range) < 0 Then '如果段落首个字符为汉字(汉字字符的ASC<0)
'定义一个RANGE对象
For N = 0 To 13 '进行14次循环
Set MyRange = i.Range '定义一个RANGE对象
With MyRange.Find '查找
.ClearFormatting '清除查找格式
'查找相应的英文标点,替换为对应的中文标点
.Execute findtext:=EnglishInterpunction(N), replacewith:=ChineseInterpunction(N), Replace:=wdReplaceAll
End With
Next
End If
Next
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting '清除查找格式
.Text = """" '查找"
'如果查找成功并且在中文段落中,分别将其替换为“/”
While .Execute
If Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "“"
If .Execute And Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "”"
Wend
End With
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting '清除查找格式
.Text = "'" '查找'
While .Execute
'如果查找成功并且在中文段落中,分别将其替换为‘/’
If Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "‘"
If .Execute And Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "’"
Wend
End With
'恢复屏幕更新
Application.ScreenUpdating = True
End Sub
'----------------------
Sub ReplaceInStoryChinese()
'全中文段落英文标点符号替换为中文标点符号
Dim i As Paragraph, ChineseInterpunction() As Variant, EnglishInterpunction() As Variant
Dim N As Byte
'定义一个中文标点的数组对象
ChineseInterpunction = Array("。", ",", ";", ":", "?", "!", "……", "—", "~", "〔", "〕", "《", "》", "‘", "’", "“", "”")
'定义一个英文标点的数组对象
EnglishInterpunction = Array(".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">", "'", "'", """", """")
On Error Resume Next
Application.ScreenUpdating = False '关闭屏幕更新
With ThisDocument.Content.Find
For N = 0 To 13 '进行14次循环
.ClearFormatting '清除查找格式
'查找相应的英文标点,替换为对应的中文标点
.Execute findtext:=EnglishInterpunction(N), replacewith:=ChineseInterpunction(N), Replace:=wdReplaceAll
Next
End With
Selection.HomeKey wdStory '移到文档首
With Selection.Find
.ClearFormatting '清除查找格式
.Text = """" '查找"
'如果查找成功并且在中文段落中,分别将其替换为“/”
While .Execute: Selection.Text = "“"
.Execute: Selection.Text = "”"
Wend
End With
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting '清除查找格式
.Text = "'" '查找'
'如果查找成功并且在中文段落中,分别将其替换为‘/’
While .Execute: Selection.Text = "‘"
.Execute: Selection.Text = "’"
Wend
End With
'恢复屏幕更新
Application.ScreenUpdating = True
End Sub
'----------------------
Sub ReplaceChineseInterpunctionInEnglish()
'全中文标点符号替换为英文标点符号
Dim ChineseInterpunction() As Variant, EnglishInterpunction() As Variant, N As Byte
'定义一个中文标点的数组对象
ChineseInterpunction = Array("。", ",", ";", ":", "?", "!", "……", "—", "~", "〔", "〕", "《", "》", "‘", "’", "“", "”")
'定义一个英文标点的数组对象
EnglishInterpunction = Array(".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">", "'", "'", """", """")
On Error Resume Next
MsgBox UBound(EnglishInterpunction)
Application.ScreenUpdating = False '关闭屏幕更新
With ThisDocument.Content.Find
For N = 0 To 16 '进行14次循环
.ClearFormatting '清除查找格式
'查找相应的英文标点,替换为对应的中文标点
.Execute findtext:=ChineseInterpunction(N), replacewith:=EnglishInterpunction(N), Replace:=wdReplaceAll
Next
End With
'恢复屏幕更新
Application.ScreenUpdating = True
End Sub
'----------------------
忍不了忘不掉

2025-03-26 17:04:00

全选文章,【格式】>【更改大小写】>选【全角】
刚才木有登陆~
浮世

2025-03-26 14:16:32

北极甜虾

2025-03-26 05:31:17

全选文章,【格式】>【更改大小写】>选【全角】