网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   Office (https://www.0058.net/forumdisplay.php?f=86)
-   -   excel汉字拼音首字母的提取方法和完整代码介绍 (https://www.0058.net/showthread.php?t=4992)

Oak Creek 2015-02-04 01:16 PM

excel汉字拼音首字母的提取方法和完整代码介绍
 
关于excel汉字拼音首字母提取的自定义函数,在网上看了一些代码,总有点小遗憾,一些自定义来提取汉字拼音首字母,如果数据源里面有字母或者数字将会被忽略掉。

  下面这个excel汉字拼音首字母提取的自定义函数,相对完美一些,做了容错处理,考虑到了如果是数字或者字母,将会自动显示出来,如果是汉字才进行提取拼音首字母。

excel汉字拼音首字母

  下面是上面所示效果图的提取汉字拼音首字母的VBA代码:


Code:

Option Explicit
Function PY(TT As String) As Variant '自定义函数,目的:把一组汉字变为一组汉字拼音的第一个字母。
Dim i%, temp$
    PY = ""
    For i = 1 To Len(TT)
        temp = Asc(Mid$(TT, i, 1))
        If temp > 255 Or temp < 0 Then  '是汉字吗?
            PY = PY & pinyin(Mid$(TT, i, 1)) '转化为拼音首字母,
        Else
            PY = PY & LCase(Mid$(TT, i, 1))  '转化英文字母
        End If
    Next i
End Function
Function pinyin(myStr As String) As Variant '自定义函数,目的:把单个汉字变为拼音的第一个字母。
    On Error Resume Next
    myStr = StrConv(myStr, vbNarrow)
    If Asc(myStr) > 0 Or Err.Number = 1004 Then pinyin = ""
    pinyin = Application.WorksheetFunction.VLookup(myStr, [{"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"}], 2)
End Function

注意:代码中的 1004指执行的单元格行数, 如单元格很多行, 可修改这个数字 .

使用方法是:打开excel文档,按下ALT+F11,打开VBE编辑器,然后插入——模块,复制上面的代码,关闭VBE。回到工作表中,输入公式,比如:=py(A2),就可以提取A2单元格汉字拼音首字母。


All times are GMT +8. The time now is 07:54 PM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.