最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Word VBA:結(jié)合網(wǎng)友的自定義函數(shù)對漢字批量增 / 刪拼音

2022-11-28 22:22 作者:ch_j  | 我要投稿

一、已有方法

1.Word中有對漢字加拼音的方法——拼音指南

通過這種方法手動加拼音是有字符串長度的限制的,因此很多網(wǎng)友基于此也寫過VBA自動化批量添加拼音的方法。

常規(guī)方法代碼截圖

2.常規(guī)方法的不足——耗時太長

此文法當(dāng)然可用,存在的不足也非常明顯,因為需要用sendkeys方法,模擬鍵盤操作,所以非常耗時。

我們對下面這段測試文本,用此方法加拼音,來測試一下耗時情況:

視頻提供了功能強大的方法幫助您證明您的觀點。當(dāng)您單擊聯(lián)機視頻時,可以在想要添加的視頻的嵌入代碼中進行粘貼。您也可以鍵入一個關(guān)鍵字以聯(lián)機搜索最適合您的文檔的視頻。
常規(guī)方法耗時測試

可以看到耗時25.305秒。這個代碼是非常耗時的,一頁通用A4紙至少有這段文字的4-5倍多,也就是說,完成一頁漢字加拼音,至少是100-125秒。那么對于多頁甚至多份文檔來說,此方法速度可能就不能滿足我們的需求了。

除此之外,此方法很難設(shè)置拼音的對齊方式、字體、字號、位置等各項參數(shù),基本只能使用默認(rèn)值。

二、新的思路

1.思路

可以運用漢字與拼音的映射關(guān)系,自己寫一個函數(shù),然后對我們要處理的漢字可以立刻找到對應(yīng)的拼音。然后用Word VBA中的拼音指南方法Range.PhoneticGuide方法進行加拼音。

這種方法不用模擬鍵盤,每個漢字發(fā)送一次,所以運行速度上有非常大的提升。

因為具體的方法中又有多種方法(后面代碼中舉例了2種,可見詳情),那么我們同樣用前面測試的文字進行一下測試:

(1)調(diào)用函數(shù)但未用正則

調(diào)用函數(shù)但不用正則方法耗時

耗時約0.188-0.19秒,速度快了許多。

(2)調(diào)用函數(shù)且用正則方法

調(diào)用函數(shù)且用正則方法耗時

耗時約0.156秒,速度更快。

可以看到用新的自定義函數(shù)獲取拼音,用正則優(yōu)化速度,都可以加快代碼運行速度,可以滿足一般的辦公自動化需求。

2.示例代碼

三、說明

1.上述完整代碼中,第一部分——函數(shù)部分并非本人原創(chuàng),是網(wǎng)友中的大佬提供的,非常感謝大佬分享。主要就是根據(jù)漢字與拼音的映射關(guān)系獲取漢字的拼音。

2.如果使用正則,速度確實相當(dāng)快,但是最好是在純文本文檔中使用;如果在有各種形狀、圖片、表格、域等復(fù)雜對象的文檔中,不建議使用,因為有可能出現(xiàn)某些錯誤。后面有時間再和大家分享可能的錯誤。

3.代碼中刪除拼音指南也提供了兩種方法,可以看相應(yīng)批注和測試。

4.對于多音字,還是需要人工校對,雖然自定義函數(shù)可以獲取多音字的多個讀音,但精確匹配,需要代碼量就更大,所以本文沒有進行進一步處理。

5.這些方法都不一定是最優(yōu)解,如果有更好的方法,也歡迎大家多多分享,共同探討。


如果您有VBA/Office/辦公自動化問題,歡迎提問和一起交流。

Word VBA:結(jié)合網(wǎng)友的自定義函數(shù)對漢字批量增 / 刪拼音的評論 (共 條)

分享到微博請遵守國家法律
梁河县| 长子县| 通辽市| 阳泉市| 敦化市| 灵武市| 介休市| 思茅市| 阿荣旗| 海门市| 阜阳市| 女性| 黄梅县| 麦盖提县| 眉山市| 成安县| 玉环县| 乌鲁木齐市| 翁牛特旗| 涡阳县| 怀化市| 双峰县| 普定县| 黑水县| 安陆市| 昌乐县| 宁南县| 峨眉山市| 达州市| 石首市| 淄博市| 华坪县| 吴川市| 永康市| 肥城市| 额济纳旗| 遵义县| 宁波市| 洞头县| 出国| 若尔盖县|