1、如何自定義:
打開(kāi)EXCEL,新建一個(gè)文件Book1,按ALT+F11進(jìn)入VBA編程環(huán)境,選中這個(gè)BOOK1文件,插入模塊,將下面的源代碼復(fù)制到右邊的模塊代碼區(qū)內(nèi),然后將此BOOK1保存,保存類(lèi)型一定選加載宏,文件名嘛可自由發(fā)揮,我就填"中文大寫(xiě)",確定OK!然后回到EXCEL,工具--加載宏-找到"中文大寫(xiě)",打勾確定,我們這個(gè)自定義函數(shù)就可以象內(nèi)置函數(shù)樣使用了!--->=rmbdx(123456.78),爽吧! 2、例子: A、直接在函數(shù)內(nèi)輸入數(shù)值的(請(qǐng)注意參數(shù)的用法,默認(rèn)用法是不用輸入) =rmbdx(123456.78)--->壹拾貳萬(wàn)叁仟肆佰伍拾陸元柒角捌分 =rmbdx(123456.78,0)--->壹拾貳萬(wàn)叁仟肆佰伍拾陸元柒角捌分 =rmbdx(123456.78,1)--->壹拾貳萬(wàn)叁仟肆佰伍拾陸元柒角捌分 =rmbdx(56.78)--->伍拾陸元柒角捌分 =rmbdx(0.78)--->柒角捌分 =rmbdx(0.784)--->柒角捌分 =rmbdx(0.785,1)--->柒角玖分 =rmbdx(0.02,1)--->貳分 B、引用某單元格數(shù)值進(jìn)行轉(zhuǎn)換的 假設(shè)你的D3單元格的數(shù)據(jù)(也可以是求和或其它公式得出的結(jié)果)需要轉(zhuǎn)換,大寫(xiě)格式放在D4單元格,則D4輸入公式:=rmbdx(d3)即可 C、其它形如=rmbdx(SUM(C4:C6))的也可以,用法象內(nèi)置函數(shù),請(qǐng)靈活使用 3、源代碼: Function rmbdx(value, Optional m = 0)
‘中文大寫(xiě)源代碼, ‘支持負(fù)數(shù),支持小數(shù)點(diǎn)后的第三位數(shù)是否進(jìn)行四舍五入處理 ‘默認(rèn)參數(shù)為0,即不將小數(shù)點(diǎn)后的第三位數(shù)進(jìn)行四舍五入處理 On Error Resume Next Dim a Dim jf As String ‘定義角分位 Dim j ‘定義角位 Dim f ‘定義分位 If value < 0 Then ‘處理正負(fù)數(shù)的情況 a = "負(fù)" Else a = "" End If If IsNumeric(value) = False Then ‘判斷待轉(zhuǎn)換的value是否為數(shù)值
rmbdx = "需轉(zhuǎn)換的內(nèi)容非數(shù)值" Else value = Abs(CCur(value)) ‘當(dāng)參數(shù)m不輸入(默認(rèn)為0)或?yàn)?時(shí),小數(shù)點(diǎn)后的第三數(shù)不進(jìn)行四舍五入處理 ‘當(dāng)參數(shù)m為1或其它數(shù)值時(shí),小數(shù)點(diǎn)后的第三數(shù)進(jìn)行四舍五入處理 If m = 0 Then jf = Fix((value - Fix(value)) * 100) value = Fix(value) + jf / 100 Else ‘厘位進(jìn)行四舍五入實(shí)踐很少用到,但還是要照顧到 value = Application.WorksheetFunction.Round(value, 2) ‘-->這句是關(guān)鍵!只用round有bug jf = Round((value - Fix(value)) * 100, 0) End If If value = 0 Or value = "" Then ‘當(dāng)待轉(zhuǎn)換數(shù)值為0或空時(shí),不進(jìn)行轉(zhuǎn)換 rmbdx = "" Else strrmbdx = Application.WorksheetFunction.Text(Int(value), "[DBNum2]") & "元" ‘轉(zhuǎn)換整數(shù)位 If Int(value) = 0 Then strrmbdx = "" End If If Int(value) <> value Then If jf > 9 Then ‘判斷小數(shù)位 j = Left(jf, 1) f = Right(jf, 1) Else j = 0 f = jf End If If j <> 0 And f <> 0 Then ‘角分位都有時(shí)
jf = Application.WorksheetFunction.Text(j, "[DBNum2]") & "角" _ & Application.WorksheetFunction.Text(f, "[DBNum2]") & "分" Else ‘處理出現(xiàn)零幾分的情況 If Int(value) = 0 And j = 0 And f <> 0 Then jf = Application.WorksheetFunction.Text(f, "[DBNum2]") & "分" Else If j = 0 Then ‘有分無(wú)角時(shí) jf = "零" & Application.WorksheetFunction.Text(f, "[DBNum2]") & "分" Else If f = 0 Then ‘有角無(wú)分時(shí) jf = Application.WorksheetFunction.Text(j, "[DBNum2]") & "角整" End If End If End If End If strrmbdx = strrmbdx & jf ‘組裝 Else strrmbdx = strrmbdx & "整" End If rmbdx = a & strrmbdx ‘最后成型了,MM滿(mǎn)意了吧 End If End If End Function |
|