2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

漢字轉(zhuǎn)拼音的解決方案(轉(zhuǎn)帖) | VBA實例教程

 gblhp 2015-02-16

除非注明,文章均為 戰(zhàn)戰(zhàn)如瘋 原創(chuàng),轉(zhuǎn)載請保留鏈接: http://www./cat4/559.html,VBA交流群273624828。

之前我分享過一個取漢字拼音首字母的函數(shù),利用的是查字庫的方法,但是最近使用時發(fā)現(xiàn)字庫中的錯誤太多,導(dǎo)致其實用性大打折扣,在網(wǎng)上又查到了一種比較好的解決方案來跟網(wǎng)友分享下。

該方案是Excelhome網(wǎng)友的作品,原帖地址http://club./thread-229924-1-1.html,要求電腦上安裝有微軟拼音,該自定義函數(shù)功能強大,不僅可以用來取首字母,更可以用來顯示全部拼音,甚至可以帶聲調(diào)。

請首先確認(rèn)安裝了微軟拼音輸入法,如果出現(xiàn)注音錯誤的情況,可嘗試安裝最新版本微軟拼音解決。

[12.01.29]更新
解決看柳絮飄揚提出的bug,全部都是非漢字情況不會再顯示#Value,同時非中文字符間也不再插入分隔符。

[11.09.29]更新
根據(jù)dul版的分析,加入了運行環(huán)境檢查,沒有運行環(huán)境的話會提示安裝微軟拼音。

[11.09.23]更新
4年來不斷有人問多音字的問題,這次更新終于解決了,由于寫了這個函數(shù)之后我就從來沒用到過,遇到些問題就放下了,一拖就這么久,要不是不斷有人給我發(fā)消息可能就不會再有這次的更新了,還要感謝大家的使用和督促,讓各位久等了。
更新后,“重慶重要”能夠正確解析為“chóng qìng zhòng yào” 。
這次重寫了很多代碼,沒有過多測試不知道有沒有bug,發(fā)現(xiàn)bug的同學(xué)請給我發(fā)消息,謝謝。
代碼在32位Win7 + Office2010和WinXp + office2010測試通過,64位的系統(tǒng)應(yīng)該會出錯,就不要測試了。以前遇到過2010下寫的VBA代碼在之前版本運行會報未找到庫之類的錯誤,代碼 中注意了,但仍可能會有遺漏,總之,請大家反饋意見,讓這個小函數(shù)更好的為大家服務(wù)。

'***************************************************************************
'*
'* Module:          HzToPy
'* Update:          2011-09-23
'* Author:          tt.t
'*
'* Description:     將中文字符串轉(zhuǎn)換為拼音,就這些。原先這里寫了太多廢話,刪了。
'*
'* Theory:    原理依然是通過IFELanguage接口實現(xiàn)。
'*                  唯一需要解釋的是如何解決多音字正確注音的問題。
'*                  IFELanguage接口是能夠正確返回很多多音字拼音的,但多音字的讀音只有特定詞匯中
'*                  才能確認(rèn),因此在解析拼音時候不能把詞拆成單字,否則多音字返回的拼音就很可能不對。
'*                  之前版本中就是因為把詞拆開獲取拼音導(dǎo)致多音字拼音錯誤。
'*                  這次的更新利用接口返回數(shù)據(jù)中標(biāo)識每個拼音長度的數(shù)組實現(xiàn)了對返回拼音
'*                  的按字拆分,無需再把詞拆成字獲取單個字的拼音,從而解決了多音字問題。
'*                  需要說明的是,VB_MORRSLT結(jié)構(gòu)就是MS文檔中的MORRSLT結(jié)構(gòu),但是VBA自定義結(jié)構(gòu)
'*                  無法實現(xiàn)不按4字節(jié)對齊,使得不得不修改MORRSLT的定義方式,能這樣修改只能說運氣不錯,
'*                  因為被修改的部分剛好獲取拼音用不到。
'*
'* Histroy:
'*                  2011-09-23
'*                  ● 重寫主要代碼,支持多音字,提高了運行效率。
'*                  ● 取拼音首字時,ao, ai, ei, ou, er作為首字而不是原來的第一個字母。
'*                  ● 為函數(shù)增加了注音方式選擇,hàn可以顯示為han或han4。
'*                  ● 函數(shù)的使用與之前版本兼容,將模塊中函數(shù)代碼和HZ2PY類代碼覆蓋之前版本即可實現(xiàn)升級,無需修改文檔中的公式。
'*                  2011-04-07
'*                  ● 更正CoTaskMemFree傳遞參數(shù)錯誤,消除了Win7等環(huán)境下崩潰。
'*                  2007-04-03
'*                  ● 更正redim時vba數(shù)組默認(rèn)起始值錯誤。
'*                  2007-04-02
'*                  ● 最初版本,實現(xiàn)了由漢字獲取拼音。
'*
'***************************************************************************

漢字轉(zhuǎn)拼音舉例:重慶重要1234,澳門

顯示用空格分開的拼音
公式: =HzToPy($b$14," ")
結(jié)果: hàn zì zhuǎn pīn yīn jǔ lì : chóng qìng zhòng yào 1 2 3 4 , ào mén
顯示用-分開的拼音,同時不顯示注音符號
公式: =HzToPy($b$14,"-",false)
結(jié)果: han-zi-zhuan-pin-yin-ju-li-:-chong-qing-zhong-yao-1-2-3-4-,-ao-men
顯示用空格分開的拼音,不顯示注音符號,同時僅顯示拼音的首字,并大寫
公式: =HzToPy($b$14, " ", false,true,false)
結(jié)果: H Z ZH P Y J L : CH Q ZH Y 1 2 3 4 , AO M
顯示用空格分開的拼音,不顯示注音符號,同時僅顯示拼音的首字母,并大寫
公式: =HzToPy($b$14 ," ", false,true, true)
結(jié)果: H Z Z P Y J L : C Q Z Y 1 2 3 4 , A M

附件下載地址:http://pan.baidu.com/s/1hqswD6W。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多