Q:
請教Excel高手:如何讓輸入的數值自動轉換成中文金額大寫!
如何讓輸入的數值自動轉換成中文金額大寫!
如:輸入123.45,轉換後:壹佰貳拾三元肆角伍分
A:
關於EXCEL中的中文大寫數位
描述:
譬如123.85
如何讓EXCEL將其自動在其他單元格裡顯示出 壹佰貳拾三圓捌角伍分
解決辦法:
如果只是轉成中文數位,從「分類」列表框中選擇「特殊」選項,指定「中文大寫數位」即可。
若是要轉換為中文大寫金額,則需使用自定義函數,方法如下:
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
2、輸入完成後,關閉VBA編輯視窗返回工作表狀態。
3、如果要轉換B2單元格的數值,並將結果儲存的C2單元格中,只要在c2單元格中輸入公式:=dxje(B2),確認即可。
通常情況下,自定義的函數只適應於定制的工作簿中,如果要在其它工作簿中使用,請將其製作為載入巨集,然後載入一下即可。
或許你說..
方法複雜了一點,另外可以用極點五筆或者智慧式陳橋五筆,兩種輸入法都相容拼音。其中都有輸入中文金額大寫的功能。
極點:
按;(分號)後輸入數位再按;極點會輸出大寫金額,如:輸入「;12,345.67;」(僅輸入引號內的內容)極點會輸出:壹萬貳仟三佰肆拾伍圓陸角柒分 。
智慧式陳橋:
分號鍵+引號鍵+數位鍵(+小數點+數位鍵)。
當你要輸入"壹萬貳仟三佰肆拾伍圓陸角柒分"時,可進行如下操作:
按一下分號鍵,再按一下引號鍵(分號鍵旁邊的鍵),再鍵入數位鍵12345.67,在智慧式五筆的提示行就會有大寫數位提示,按空格鍵即可
|