關于excel漢字拼音首字母提取的自定義函數,在網上看了一些代碼,總有點小遺憾,一些自定義來提取漢字拼音首字母,如果數據源里面有字母或者數字將會被忽略掉。
下面這個excel漢字拼音首字母提取的自定義函數,相對完美一些,做了容錯處理,考慮到了如果是數字或者字母,將會自動顯示出來,如果是漢字才進行提取拼音首字母。
下面是上面所示效果圖的提取漢字拼音首字母的VBA代碼:
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
使用方法是:打開excel文檔,按下ALT+F11,打開VBE編輯器,然后插入——模塊,復制上面的代碼,關閉VBE。回到工作表中,輸入公式,比如:=py(A2),就可以提取A2單元格漢字拼音首字母。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/