資源描述:
《excel提取漢字的拼音首字母集錦.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、方法二:VBA自定義函數(shù)"=hztopy()"下面是一個VBA自定義函數(shù),工具->宏->VisualBasic編輯器->,插入模塊,在VBA編輯器里面->插入->模塊->貼入下述代碼,那么,比如在A3中有"進退兩難",則在B3中輸入"=hztopy(A3)",則會得到"JTLN"。不過此法有時候也會出錯,比如"皓、鑫、婷、雯、奕"等,就無法提取漢字拼音首字母。"Functionhztopy(hzpyAsString)AsStringDimhzstringAsString,pystringAsStringDimhzpysumAsInteger,hziAsInteger,hzpyhexAsInte
2、gerhzstring=Trim(hzpy)hzpysum=Len(Trim(hzstring))pystring=""Forhzi=1Tohzpysumhzpyhex="&H"+Hex(Asc(Mid(hzstring,hzi,1)))SelectCasehzpyhexCase&HB0A1To&HB0C4:pystring=pystring+"A"Case&HB0C5To&HB2C0:pystring=pystring+"B"Case&HB2C1To&HB4ED:pystring=pystring+"C"Case&HB4EETo&HB6E9:pystring=pystring+"D"Case
3、&HB6EATo&HB7A1:pystring=pystring+"E"Case&HB7A2To&HB8C0:pystring=pystring+"F"Case&HB8C1To&HB9FD:pystring=pystring+"G"Case&HB9FETo&HBBF6:pystring=pystring+"H"Case&HBBF7To&HBFA5:pystring=pystring+"J"Case&HBFA6To&HC0AB:pystring=pystring+"K"Case&HC0ACTo&HC2E7:pystring=pystring+"L"Case&HC2E8To&HC4C2:pystr
4、ing=pystring+"M"Case&HC4C3To&HC5B5:pystring=pystring+"N"Case&HC5B6To&HC5BD:pystring=pystring+"O"Case&HC5BETo&HC6D9:pystring=pystring+"P"Case&HC6DATo&HC8BA:pystring=pystring+"Q"Case&HC8BBTo&HC8F5:pystring=pystring+"R"Case&HC8F6To&HCBF9:pystring=pystring+"S"Case&HCBFATo&HCDD9:pystring=pystring+"T"Case
5、&HEDC5:pystring=pystring+"T"Case&HCDDATo&HCEF3:pystring=pystring+"W"Case&HCEF4To&HD1B8:pystring=pystring+"X"Case&HD1B9To&HD4D0:pystring=pystring+"Y"Case&HD4D1To&HD7F9:pystring=pystring+"Z"CaseElsepystring=pystring+Mid(hzstring,hzi,1)EndSelectNexthztopy=pystringEndFunction方法三:VBA自定義函數(shù)"=getpy()"下面是一個V
6、BA自定義函數(shù),工具->宏->VisualBasic編輯器->,插入模塊,在VBA編輯器里面->插入->模塊->貼入上述代碼,那么。那么,比如在A2中有"進退兩難",則在B2中輸入"=getpy(A2)",則會得到"JTLN"。不過此法有時候也會出錯,比如"鑫、雯、奕"等,就無法提取漢字拼音首字母,還有些字如"皓、婷"等被錯提取為“Z”。Functiongetpychar(char)tmp=65536+Asc(char)If(tmp>=45217Andtmp<=45252)Thengetpychar="A"ElseIf(tmp>=45253Andtmp<=45760)Thengetpychar
7、="B"ElseIf(tmp>=45761Andtmp<=46317)Thengetpychar="C"ElseIf(tmp>=46318Andtmp<=46825)Thengetpychar="D"ElseIf(tmp>=46826Andtmp<=47009)Thengetpychar="E"ElseIf(tmp>=47010Andtmp<=47296)Thengetpychar="F"Else