返回目录:office365
Excel中可以利用自定义函数来实现将汉字转换成拼音。
所用工具:Office2007
举例说明如下:
1.将A列数据转换成拼音:
2.alt+F11插入模块,在模块中输入如下代码,代码很多(由于篇幅限制,无法将全部代码发上来,e79fa5e98193e4b893e5b19e332可以搜索汉字ASC码来获取),但原理很简单,利用每个汉字的ASC码来得到这个汉字的拼音,然后依次提取单元格中的每一个汉字,分别获得其拼音。
Function pinyin(p As String) As String
i = Asc(p)
Select Case i
Case -20319 To -20318: pinyin = "a "
Case -20317 To -20305: pinyin = "ai "
Case -20304 To -20296: pinyin = "an "
Case -20295 To -20293: pinyin = "ang "
Case -20292 To -20284: pinyin = "ao "
Case -20283 To -20266: pinyin = "ba "
Case -20265 To -20258: pinyin = "bai "
Case -20257 To -20243: pinyin = "ban "
Case -20242 To -20231: pinyin = "bang "
Case -20230 To -20052: pinyin = "bao "
Case -20051 To -20037: pinyin = "bei "
Case -20036 To -20033: pinyin = "ben "
Case -20032 To -20027: pinyin = "beng "
Case -20026 To -20003: pinyin = "bi "
Case -20002 To -19991: pinyin = "bian "
Case -19990 To -19987: pinyin = "biao "
Case -19986 To -19983: pinyin = "bie "
……
Case -11055 To -11053: pinyin = "za "
Case -11052 To -11046: pinyin = "zai "
Case -11045 To -11042: pinyin = "zan "
Case -11041 To -11039: pinyin = "zang "
Case -11038 To -11025: pinyin = "zao "
Case -11024 To -11021: pinyin = "ze "
Case -11020 To -11020: pinyin = "zei "
Case -11019 To -11019: pinyin = "zen "
Case -11018 To -11015: pinyin = "zeng "
Case -11014 To -10839: pinyin = "zha "
Case -10838 To -10833: pinyin = "zhai "
Case -10832 To -10816: pinyin = "zhan "
Case -10815 To -10801: pinyin = "zhang "
Case -10800 To -10791: pinyin = "zhao "
Case -10790 To -10781: pinyin = "zhe "
Case -10780 To -10765: pinyin = "zhen "
Case -10764 To -10588: pinyin = "zheng "
Case -10587 To -10545: pinyin = "zhi "
Case -10544 To -10534: pinyin = "zhong "
Case -10533 To -10520: pinyin = "zhou "
Case -10519 To -10332: pinyin = "zhu "
Case -10331 To -10330: pinyin = "zhua "
Case -10329 To -10329: pinyin = "zhuai "
Case -10328 To -10323: pinyin = "zhuan "
Case -10322 To -10316: pinyin = "zhuang "
Case -10315 To -10310: pinyin = "zhui "
Case -10309 To -10308: pinyin = "zhun "
Case -10307 To -10297: pinyin = "zhuo "
Case -10296 To -10282: pinyin = "zi "
Case -10281 To -10275: pinyin = "zong "
Case -10274 To -10271: pinyin = "zou "
Case -10270 To -10263: pinyin = "zu "
Case -10262 To -10261: pinyin = "zuan "
Case -10260 To -10257: pinyin = "zui "
Case -10256 To -10255: pinyin = "zun "
Case -10254 To -10254: pinyin = "zuo "
Case Else: pinyin = p
End Select
End Function
Function py(str)
For i = 1 To Len(str)
py = py & pinyin(Mid(str, i, 1))
Next i
End Function
3.这样,返回Excel利用自定义的py函数即可:
4.下拉填充,就可以得到全部汉字的拼音:
第一步:创建自知定义函数。代码如下道:
Function pinyin(p As String) As String
i = Asc(p)
Select Case i
Case -20319 To -20318: pinyin = "a "
省略(因有字数限制)
Case -10254 To -10254: pinyin = "zuo "
Case Else: pinyin = p
End Select
End Function
Function getpy(str)
For i = 1 To Len(str)
getpy = getpy & pinyin(Mid(str, i, 1))
Next i
End Function
第二步:在A列输入汉字。如图:专
第三属步:在B列输入公式。如图:
1.启动Excel,打开相应的工作表。
2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态。
3.执行“插入→模块”命令,插e799bee5baa6e78988e69d83330入一个新模块。再双击插入的模块,进入模块代码编辑状态。
4.将代码输入其中。代码如下:
Function getpychar(char)
tmp = 65536 + Asc(char)
If (tmp >= 45217 And tmp <= 45252) Then
getpychar = "A"
ElseIf (tmp >= 45253 And tmp <= 45760) Then
getpychar = "B"
ElseIf (tmp >= 45761 And tmp <= 46317) Then
getpychar = "C"
ElseIf (tmp >= 46318 And tmp <= 46825) Then
getpychar = "D"
ElseIf (tmp >= 46826 And tmp <= 47009) Then
getpychar = "E"
ElseIf (tmp >= 47010 And tmp <= 47296) Then
getpychar = "F"
ElseIf (tmp >= 47297 And tmp <= 47613) Then
getpychar = "G"
ElseIf (tmp >= 47614 And tmp <= 48118) Then
getpychar = "H"
ElseIf (tmp >= 48119 And tmp <= 49061) Then
getpychar = "J"
ElseIf (tmp >= 49062 And tmp <= 49323) Then
getpychar = "K"
ElseIf (tmp >= 49324 And tmp <= 49895) Then
getpychar = "L"
ElseIf (tmp >= 49896 And tmp <= 50370) Then
getpychar = "M"
ElseIf (tmp >= 50371 And tmp <= 50613) Then
getpychar = "N"
ElseIf (tmp >= 50614 And tmp <= 50621) Then
getpychar = "O"
ElseIf (tmp >= 50622 And tmp <= 50905) Then
getpychar = "P"
ElseIf (tmp >= 50906 And tmp <= 51386) Then
getpychar = "Q"
ElseIf (tmp >= 51387 And tmp <= 51445) Then
getpychar = "R"
ElseIf (tmp >= 51446 And tmp <= 52217) Then
getpychar = "S"
ElseIf (tmp >= 52218 And tmp <= 52697) Then
getpychar = "T"
ElseIf (tmp >= 52698 And tmp <= 52979) Then
getpychar = "W"
ElseIf (tmp >= 52980 And tmp <= 53640) Then
getpychar = "X"
ElseIf (tmp >= 53679 And tmp <= 54480) Then
getpychar = "Y"
ElseIf (tmp >= 54481 And tmp <= 62289) Then
getpychar = "Z"
Else '如果不是中文,则不处理
getpychar = char
End If
End Function
'逐个取ASC码
Function getpy(str)
For i = 1 To Len(str)
getpy = getpy & getpychar(Mid(str, i, 1))
Next i
End Function
5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态。
6.自定义函数就可以用了。如:选中A2单元格,输入公式:=getpy(A2)。
你可以zhidao下载一个汉字转换拼音的软内件,转换后复制到excel,下载容地址:http:///soft/12702.html