?很多朋友問(wèn)到了在Excel中如何將小寫(xiě)的數(shù)字金額轉(zhuǎn)換為中文大寫(xiě)的金額让蕾,在此,專(zhuān)門(mén)開(kāi)一篇文章介紹這個(gè)問(wèn)題结蟋。
?實(shí)際上脯倚,這種數(shù)字轉(zhuǎn)換的方法不止一種,在此嵌屎,主要介紹兩種轉(zhuǎn)換方式推正。第一種,使用公式設(shè)定單元格格式宝惰,第二種舔稀,使用自定義函數(shù)。實(shí)際效果如下:
?那么以下掌测,就來(lái)說(shuō)一下每種方式的具體操作過(guò)程内贮。
第一種方式:使用公式
?這種方式最為簡(jiǎn)單,不需要任何設(shè)定汞斧,只需要在目標(biāo)單元格寫(xiě)入公式即可夜郁,以上圖為例,在B2單元格寫(xiě)入如下公式即可:
=IF(INT(B1)=B1,TEXT(INT(B1),"[dbnum2]G/通用格式元整;;"),TEXT(INT(B1),"[dbnum2]G/通用格式元;;") & TEXT(RIGHT(RMB(B1,2),2),"[dbnum2]0角0分;;整"))
?大體意思就是粘勒,把數(shù)據(jù)分成兩部分來(lái)觀測(cè)竞端,第一部分為為整數(shù),第二部分為小數(shù)庙睡,判斷在不同情況下按照不同的自定義格式輸出事富。
第二種方式:使用自定義函數(shù)
?在VBA編輯器中插入一個(gè)模塊技俐,寫(xiě)入如下代碼:
Public Function N2RMB(Number As Double) As String
If IsNull(Number) = True Then
N2RMB = "0"
Exit Function
End If
Dim j, k, l, last As Integer
Dim n As Double
Dim C1, C2, X As String
C1 = "零壹貳叁肆伍陸柒捌玖"
C2 = "分角元拾佰仟萬(wàn)拾佰仟億拾佰"
last = 1
n = Round(Abs(Number), 2) * 100
l = Len(CStr(n))
last = 1
For j = 1 To Len(CStr(n))
'k為右邊算起的第j位的數(shù)字
k = Mid(n, Len(CStr(n)) + 1 - j, 1)
If k > 0 Then
X = Mid(C1, k + 1, 1) & Mid(C2, j, 1) & X
last = 1
Else
Select Case j
Case 1
Case 3
X = "元" & X
Case 7
If Len(CStr(n)) < 11 Then
X = "萬(wàn)" & X
Else
If Mid(CStr(n), Len(CStr(n)) - 9, 4) <> "0000" Then
X = "萬(wàn)" & X
End If
End If
Case 11
X = "億" & X
Case Else
If last = 1 Then
X = "零" & X
End If
End Select
last = 0
End If
If j = 2 And Right(n, 2) = 0 Then
X = X & "整"
End If
Next j
N2RMB = X
End Function
?以上代碼定義了一個(gè)全局自定義函數(shù)N2RMB()。調(diào)用該函數(shù)统台,可以直接把Excel單元格內(nèi)部數(shù)據(jù)轉(zhuǎn)化為中文的大寫(xiě)金額雕擂。
?以開(kāi)頭的圖片為例,用法如下:
?在B3單元格輸入:N2RMB(B1)即可贱勃【模可以看到,此時(shí)函數(shù)提示里面已經(jīng)自動(dòng)把該自定義函數(shù)給列出來(lái)了贵扰。
?比較以上兩種方式仇穗,各有優(yōu)劣。如果在單元格簡(jiǎn)單的數(shù)據(jù)轉(zhuǎn)化上戚绕,那么使用公式比較省事纹坐。但如果涉及到復(fù)雜的輸出,那么公式就會(huì)比較冗長(zhǎng)舞丛,很容易出錯(cuò)恰画。使用自定義函數(shù)的話工作簿需要保存為啟用宏的工作簿,很多地方可能會(huì)被阻止瓷马,但用起來(lái)非常簡(jiǎn)潔拴还。
創(chuàng)作不易,轉(zhuǎn)載請(qǐng)聲明來(lái)源欧聘!謝謝片林!