今天做一个统计表,里面很多全角的数字、全角的英文字母,看得我很烦了,难懂我要用 ctrl+F 挨个挨个替换我的天,那样子效率也太低了吧. 下面有两个方法供你参考,自带的方法比较简单,高版本才行,低版本的同学,用你的宏去吧。

方法一:通过 word 自带的功能

对于 word2007,word2010,word2013 等高版本等高版本要实现半角和全角的转化和全角到半角的转化,简直是太简单了。

第一步,选中你要更改的文件内容,全选 ctrl+A;

第二步,“开始” 选项卡,找到字体旁边有个 Aa 的标示,然后单击,出现下拉菜单 (如图所示)

选中 “半角” 就全部转换成半角

选中全角就转换成全角,当然还有什么大小写转换,简单多了。

word2013全角和半角之间转换

方法二:通过宏的方式实现

这不想到了 word 的宏处理,一下子不就可以解决这个问题了吗?问题分为两个步骤解决,首先是录制宏,然后是运行宏。

一、录制宏

1、word2003 中。执行 “工具”→“宏”→“录制新宏...”,在 “宏名” 框中输入 “数字全角转半角”,确定,将出现一个 “录制宏” 工具栏,关闭它。 

执行 “工具”→“宏”→“宏...”,选择 “数字全角转半角”,单击 “编辑” 按钮,打开 vba 编辑窗口,录入代码

2、word2007,word2010,word2013 等高版本中。视图---> 宏-->l 录制宏,输入宏名后关闭。然后   视图---> 宏--> 查看宏---> 编辑,输入宏代码,然后保存。

word2013宏设置

二、宏代码如下:

Sub 全角转半角 ()

Dim qjsz, bjsz As String, i As Integer '定义 qjsz(全角数字)、bjsz(半角数字) 为字符串型,i 为整数型

qjsz = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

bjsz = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

For i = 1 To 62 '循环 62 次

With Selection.Find

.Text = Mid(qjsz, i, 1) 'mid 函数:返回文本字符串中从指定位置开始的特定数目的字符,每次取一个数字

.Replacement.Text = Mid(bjsz, i, 1) '将用于替换的相应位置的半角数字

.Format = False '保留替换前的字符格式

.Execute Replace:=wdReplaceAll '用半角数字替换全角数字

End With

Next i

End Sub

三、如何替换全角到半角 (运行宏)

选中全部文字,快捷键 ctrl+A

word2003:执行 “工具”→“宏”→“宏...”→“数字全角转半角”

word2007,word2010,word2013 等高版本视图--->宏---->→“数字全角转半角” 运行

未命名-1.jpg

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注