今天做一个统计表,里面很多全角的数字、全角的英文字母,看得我很烦了,难懂我要用ctrl+F挨个挨个替换我的天,那样子效率也太低了吧.下面有两个方法供你参考,自带的方法比较简单,高版本才行,低版本的同学,用你的宏去吧。
方法一:通过word自带的功能
对于word2007,word2010,word2013等高版本等高版本要实现半角和全角的转化和全角到半角的转化,简直是太简单了。
第一步,选中你要更改的文件内容,全选ctrl+A;
第二步,“开始”选项卡,找到字体旁边有个Aa的标示,然后单击,出现下拉菜单(如图所示)
选中“半角”就全部转换成半角
选中全角就转换成全角,当然还有什么大小写转换,简单多了。
方法二:通过宏的方式实现
这不想到了word的宏处理,一下子不就可以解决这个问题了吗?问题分为两个步骤解决,首先是录制宏,然后是运行宏。
一、录制宏
1、word2003中。执行“工具”→“宏”→“录制新宏…”,在“宏名”框中输入“数字全角转半角”,确定,将出现一个“录制宏”工具栏,关闭它。
执行“工具”→“宏”→“宏…”,选择“数字全角转半角”,单击“编辑”按钮,打开vba编辑窗口,录入代码
2、word2007,word2010,word2013等高版本中。视图—>宏–>l录制宏,输入宏名后关闭。然后 视图—>宏–>查看宏—>编辑,输入宏代码,然后保存。
二、宏代码如下:
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等高版本:视图—>宏—->→“数字全角转半角” 运行