今天做一个统计表,里面很多全角的数字、全角的英文字母,看得我很烦了,难懂我要用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

发表回复

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