將阿拉伯金額數字轉換成中文大寫形式的兩種方法: 內置函數法、 自定義函數法一、 內置函數法    我們將C12 單元格中的數值轉換為中文大寫形式, 並將結果保存在D12 單元格中。   1、 分別選中 E13、 F13、 G113 單元格, 依次輸入公式: =TEXT(INT(ABS(C12)),"[DBNum2]")、 =TEXT(INT(ABS(C12*10))- INT(ABS(C12))*10,"[DBNum2]")、 =TEXT(INT(ABS(C12*100))- INT(ABS(C12*10))*10,"[DBNum2]")。公式含義解析: 分別確定統計結果的元、 角、 分的數值, 並將其轉換為中文大寫格式。2、 選中 E10 單元格, 輸入公式: =E13&"元"&F13&"角"&G13&"分", 或者: =CONCATENATE(E13,"元",F13,"角",G13,"分")。公式含義解析: 將E13 至G13 單元格中的文本組合為一個整體,並在相應位置加上單位「元、 角、 分」 文字。     3、 再次選中 E12 單元格, 執行「格式→條件格式」 命令, 打開 「條件格式」 對話框。   按「條件1」下面的下拉按鈕, 選中「公式」 選項, 在後面的方框中輸入「=$C$12<0」,再按「格式」 按鈕, 在隨後彈出的「單元格格式」 對話框中, 將「字體」 顏色設置為紅色, 確定退出。     4、 選中 C12 單元格, 執行「格式→單元格」 命令, 打開「單元格格式」 對話框, 切換到「數字」 標籤下, 選中「分類 」 下面的「貨幣」 選項後, 再選中右邊「負數」 下面的紅色選項,確定退出。     注意: 經過以上兩步操作後, 當 C12 中的數值小於零時, 大、 小寫結果均以紅色顯示, 與財務要求相一致。     5、 選中 13 行, 右擊滑鼠, 在隨後彈出的快捷菜單中, 選「隱藏 」 選項, 將13 行隱藏起來, 不影響正常列印效果。

二、自定義函數法

  顯然上面的轉換方法比較麻煩。其實,我們可以事先自定義一個函數,然後再用自定義的函數來轉換。   1、執行「工具→宏→Visual Basic編輯器」命令,進入「Visual Basic編輯」窗口。執行「插入→模塊」命令,插入一個模塊(如「模塊1」),雙擊「模塊1」在窗口右邊展開「模塊1(代碼)」編輯窗口,輸入如下代碼。

 Function dxje(q)    ybb = Round(q * 100) "將輸入的數值擴大100倍,進行四捨五入   y = Int(ybb / 100) "截取出整數部分   j = Int(ybb / 10) - y * 10 "截取出十分位   f = ybb - y * 100 - j * 10 "截取出百分位   zy = Application.WorksheetFunction.Text(y, "[dbnum2]") "將整數部分轉為中文大寫   zj = Application.WorksheetFunction.Text(j, "[dbnum2]") "將十分位轉為中文大寫   zf = Application.WorksheetFunction.Text(f, "[dbnum2]") "將百分位轉為中文大寫   dxje = zy & "元" & "整"    d1 = zy & "元"    If f <> 0 And j <> 0 Then     dxje = d1 & zj & "角" & zf & "分"     If y = 0 Then      dxje = zj & "角" & zf & "分"     End If    End If    If f = 0 And j <> 0 Then     dxje = d1 & zj & "角" & "整"     If y = 0 Then      dxje = zj & "角" & "整"     End If    End If    If f <> 0 And j = 0 Then     dxje = d1 & zj & zf & "分"     If y = 0 Then      dxje = zf & "分"     End If    End If    If q = "" Then     dxje = 0 "如沒有輸入任何數值為0    End If   End Function

  注意:①上面代碼中英文單引號「"」後面的字元可以不輸入,只是用來解釋代碼的含義。②代碼中「dxje」是自定義函數名稱,你可以修改為其他字元。

  2、輸入完成後,關閉VBA編輯窗口返回工作表狀態。

  3、如果要轉換C2單元格的數值,並將結果保存的D2單元格中,只要在D2單元格中輸入公式:=dxje(C2),確認即可。

注意:通常情況下,自定義的函數只適應於定製的工作簿中,如果要在其它工作簿中使用,請將其製作為載入宏,然後載入一下即可。

  以上自定義函數的代碼由「中文Excel應用論壇」網友豆豆提供,在此表示感謝!方法三:金額轉換——一個經典的函數公式=IF(A1<0,"負","")&IF(ABS(A1)>1,TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元","")&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分","整")
推薦閱讀:

查看原文 >>
相關文章