當前位置:編程學習大全網 - 編程語言 - excel中怎麽將表示金額的阿拉伯數字轉換成中文大寫

excel中怎麽將表示金額的阿拉伯數字轉換成中文大寫

壹、自定義VBA函數:

Function RMBdx(Optional Mynum As Variant)

'原創:生哥

'來源:www.vip968.com?七彩陽光

'功能:根據數值返回人民幣的大寫金額。

If IsNumeric(Mynum) = False Then 'IsNumeric() 判斷是否為數字

Mynum = 0

End If

Mynum = Round(Mynum, 2)? '將數字保留2位小數

If Sgn(Mynum) = 0 Then '判斷數字是否為負數,=1為正,=0為零,=-1為負

RMBdx = "" '數字為0,則不顯示,如需顯示其它信息,請自行修改,如改為?RMBdx = "零圓"

Else

RMBdx = IIf(Sgn(Mynum) = -1, "負", "") & Application.Text(Int(Abs(Mynum)), "[=]g;[dbnum2]") & "圓"?'若為負數,則在前加“負”字

If Abs(Mynum) - Int(Abs(Mynum)) > 0 Then '判斷數字是否為帶小數點

?RMBdx = RMBdx & Application.Text(Right(Format(Abs(Mynum) - Int(Abs(Mynum)), "0.00"), 2), "[=]g;[dbnum2]0角0分")? '轉換小數點後數字

?RMBdx = Replace(Replace(RMBdx, "零分", ""), "零角", "零") ? '如出現“零角”則替換為“零”,如出現“零分”則清除,如需顯示“角整”則使用下邊壹行。

?'RMBdx = Replace(Replace(RMBdx, "零分", "整"), "零角", "零") ? '如出現“零角”則替換為“零”,如出現“零分”則清除,如需顯示“角整”則使用本行。

Else

?RMBdx = RMBdx & "整"

End If

End If

End Function

二、直接使用公式的最簡單方法:

1、顯示“角整”

如“10.20元”顯示為“壹拾圓貳角整”

=IF(ROUND(A1,2)=0,"",IF(A1<0,"負","")&IF(ABS(A1)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"圓","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2<1,,"零")),"零分","整"))

2、不顯示“角整”

如“10.20元”顯示為“壹拾圓貳角”

=IF(ROUND(A1,2)=0,"",IF(A1<0,"負","")&IF(ABS(A1)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"圓","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2<1,,"零")),"零分",""))

三、用上述方法驗證如圖:

c2公式:=rmbdx(B2)

d2公式:=IF(ROUND(B2,2)=0,"",IF(B2<0,"負","")&IF(ABS(B2)>=1,TEXT(INT(ROUND(ABS(B2),2)),"[dbnum2]")&"圓","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(B2,2),2),"[dbnum2]0角0分;;整"),"零角",IF(B2^2<1,,"零")),"零分","整"))

e2公式:=IF(ROUND(B2,2)=0,"",IF(B2<0,"負","")&IF(ABS(B2)>=1,TEXT(INT(ROUND(ABS(B2),2)),"[dbnum2]")&"圓","")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(B2,2),2),"[dbnum2]0角0分;;整"),"零角",IF(B2^2<1,,"零")),"零分",""))

我覺得這個別人已經寫的很好了,這是我的學習筆記。看到這個問題就貼出來。

第三部分確實是我剛寫的公式。

不用的話就刪吧。

  • 上一篇:機器人資料(和FLL有關的)越多越好
  • 下一篇:到底要不要送孩子學習少兒編程
  • copyright 2024編程學習大全網