国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Excel > 正文

在Excel中實現(xiàn)中文大寫數(shù)字的方法

2019-12-13 16:34:51
字體:
供稿:網(wǎng)友
一、自動更正法

  使用自動更正功能,可以簡化用戶對大寫漢字的輸入操作,例如可以將“1//”定義更正為“壹”,那么當(dāng)要輸入“壹”時,就可通過鍵入“1//”來實現(xiàn)。另外,這種定義以后不僅在Excel中有效,在Word中也同樣有效,因為“自動更正”程序是Office組件所公用的。

  用“自動更正”是最簡單易行的,用戶可自由、方便地輸入要寫的大寫讀法。然而它的局限性也很明顯,即它雖然給使用者提供了輸入大寫數(shù)字的方便手段,但終究還是需要人工輸入,不能自動、實時地依當(dāng)前的實際數(shù)字結(jié)果進(jìn)行更新。


  二、工作表函數(shù)替換法

  要做到數(shù)值的自動更新,一般都會想到用VB構(gòu)造函數(shù)法,但其實我們可采用一個簡單的方法,即工作表函數(shù)的替換法。顧名思義,所謂“工作表函數(shù)的替換法”,就是將原來的結(jié)果換去一部分。那么換什么,又怎樣換?

  我們知道,在Excel中,提供了多種數(shù)字的顯示格式。其中文版實際上也包括數(shù)字的大寫讀法顯示格式,但遺憾的是這個功能對一般用戶來說基本上不能用,因為Microsoft在實現(xiàn)這個數(shù)字顯示格式時犯了一個小小的錯誤,例如“33.56”這個數(shù),它顯示出來的是“叁拾叁.伍陸”。很顯然,沒有將小數(shù)點作有效處理。

  雖然這個顯示格式是錯的,但其勞動成果還是能為我們所用——只要能設(shè)法將其小數(shù)點作有效處理。做到這一點也并不難,可以先將數(shù)字以其內(nèi)置的中文大寫顯示格式轉(zhuǎn)變?yōu)槲谋靖袷剑词褂肨EXE( )函數(shù)將其結(jié)果轉(zhuǎn)化為字符串,然后將小數(shù)點“.”用漢字“點”換掉(使用SUBSTITUTE( )函數(shù)。

  例如,若要將B1單元格內(nèi)容重寫為大寫,則可以在單元格中輸入如下公式:

復(fù)制代碼
代碼如下:

=SUBSTITUTE(TEXT(B1,"G/通用格式"),".","點")

使用這樣一個小小的公式應(yīng)當(dāng)說并不復(fù)雜,不過,這樣做仍不能滿足某些情況下的要求,因為使用大寫表示數(shù)額一般只應(yīng)用于財會方面,其他很少這么用。在上例中,對數(shù)字“33.56”,往往要求結(jié)果寫為“叁拾叁元伍角陸分”。那么,如何將“33.00”寫為“叁拾叁元整”呢?

  實現(xiàn)這一功能的邏輯也不太復(fù)雜。我們可以看到,Excel顯示格式的小數(shù)點前的數(shù)字讀法是沒有錯的,可將其取出來作為一個字符串;小數(shù)點后面的數(shù)字則麻煩些,必取出來,再以低位是否都為“0”來判斷是要寫“整”還是“零”。還要將“元”、“角”、“分”等字串適當(dāng)?shù)夭迦耄詈蟀褞讉€字串連接起來就行了。我們?nèi)詫1 單元格內(nèi)容作格式轉(zhuǎn)化,則具體實現(xiàn)如下:

復(fù)制代碼
代碼如下:

=TEXT(INT(B1),"G/通用格式")&"元"&IF((INT(B1*10)-INT(B1) *10)=0," ",TEXT(INT(B1*10) - INT (B1) * 10 ,"G/通用格式") &"角")&IF((INT(B1*100)-INT(B1*10) *10)=0,"整",TEXT (INT (B1*100) - INT ( B1*10) *10,"G/通用格式")&"分")

寫這么一長串的公式看來似乎有些嚇人,但是,如果在常要修改數(shù)據(jù)的表中或在模板里以這個方法實現(xiàn)大寫漢字顯示的話,則以后不但省事而且不易出錯。


  三、VB編程法的思路

  可以用VB寫一個函數(shù),以后可像Excel的內(nèi)部函數(shù)一樣直接被調(diào)用,不過這需要熟悉VB編程。在編程過程中可用一般的方法調(diào)用VB函數(shù),也可以借用我們前面所列“代換法”中的函數(shù)。但前面的公式中用的大多是Excel的工作表函數(shù),在VB中不能直接使用,若非要用,也只能通過層次關(guān)系調(diào)用它(即用“Application WorksheetFunction”方式調(diào)用)。

  但個人認(rèn)為最好自己用VB函數(shù)寫,因為這樣的話,較通用且可移植性好。若只用VB函數(shù),具體方法與代換法也有類似之處,但小數(shù)點前的處理要復(fù)雜得多,相應(yīng)的代碼也太長。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 壶关县| 多伦县| 搜索| 专栏| 嵩明县| 周至县| 资中县| 阿勒泰市| 江西省| 平乐县| 来安县| 桂平市| 肇庆市| 石嘴山市| 涿州市| 楚雄市| 神农架林区| 嘉善县| 定陶县| 通州区| 卢龙县| 盈江县| 阿鲁科尔沁旗| 长泰县| 当阳市| 绿春县| 漠河县| 梁平县| 新和县| 葫芦岛市| 寿光市| 咸宁市| 花垣县| 驻马店市| 宜城市| 吉林省| 邵东县| 措勤县| 岱山县| 应用必备| 仙居县|