【求助】請教excel貨幣格式,元角分,謝謝!!



贊助商連結


liangbj0309
2005-04-26, 09:55 PM
excel中.有沒有方式將.us253.69轉換成"貳佰伍拾參元陸角玖分整"呢?

搜尋了excel及貨幣格式(39頁)
均無所穫
期望各位大哥不吝賜教

謝謝!! :)

贊助商連結


antion
2005-04-26, 10:48 PM
請您參考下列[數字]轉換為[國字]的方法,自行修改成您所需要的格式。

[儲存格格式]設為[自訂]---[DBNum2][$-404]" 新台幣 "G/通用格式"元 整"
12345 ---> 新台幣 壹萬貳仟參佰肆拾伍元 整

[儲存格格式]設為[自訂]---"NT$ "#,##0" 元"
12345 ---> NT$ 12,345 元

liangbj0309
2005-04-27, 12:04 PM
謝謝您,待會試試

gregchen
2005-05-21, 11:04 AM
以上的可以用啊。
但不知如何才能自動去掉中文金額中的「零」字,如1005元整-->壹仟(零)伍元整,或20080元整-->貳萬(零)捌拾元整。謝謝。

antion
2005-05-21, 12:16 PM
1. 去掉「零」就非正確的大寫國字數字,金融機構可能會「退票」喔!所以不能省。
2. 若有其他用途,非去掉「零」不可,可用字串比對的方法,並將「零」刪除即可。

antion
2005-05-21, 12:35 PM
以下是小弟以前寫CLIPPER程式時的「函數」,目前已修改套用在ACCESS程式模組,方法不是很好但是可以使用,您可參考利用。

' 語法 : Cha(<expN>)
' 用途 : 數字金額<expN>轉換為中文金額 (發票)

Public Function Cha(A)
Dim B, C, TMA, CHINA, TMB, TMC, TM
Dim K(8)
TMA = Trim(Str(A))

C = Len(TMA)

Select Case C
Case Is = 1
K(1) = "元"
Case Is = 2
K(2) = "元"
K(1) = "拾"
Case Is = 3
K(3) = "元"
K(2) = "拾"
K(1) = "佰"
Case Is = 4
K(4) = "元"
K(3) = "拾"
K(2) = "佰"
K(1) = "仟"
Case Is = 5
K(5) = "元"
K(4) = "拾"
K(3) = "佰"
K(2) = "仟"
K(1) = "萬"
Case Is = 6
K(6) = "元"
K(5) = "拾"
K(4) = "佰"
K(3) = "仟"
K(2) = "萬"
K(1) = "拾萬"
Case Is = 7
K(7) = "元"
K(6) = "拾"
K(5) = "佰"
K(4) = "仟"
K(3) = "萬"
K(2) = "拾萬"
K(1) = "佰萬"
Case Is = 8
K(8) = "元"
K(7) = "拾"
K(6) = "佰"
K(5) = "仟"
K(4) = "萬"
K(3) = "拾萬"
K(2) = "佰萬"
K(1) = "仟萬"
End Select

For B = 1 To C

TMC = Noch(Mid(TMA, B, 1))

CHINA = CHINA & " " & TMC & " " & K(B)

Next B
Cha = CHINA & "整"
End Function

' 語法 : StrZero(<數值>,<長度>)
' 用途 : 將一數值字串化並在數值之開頭空白處以"0"來取代

Function StrZero(A, B)
Dim C, D, E

C = Trim(Str(A))
D = ""

For E = 1 To B - Len(A)
D = D + "0"
Next E

StrZero = D + C

End Function

' 語法 : StrSpace(<數值>,<長度>)
' 用途 : 將一數值字串化並在數值之開頭空白處以" "來取代

Function StrSpace(A, B)
Dim C, D, E

C = Trim(Str(A))
D = ""

For E = 1 To B - Len(A)
D = D + " "
Next E

StrSpace = D + C

End Function

' 語法 : Chnt(<expN>)
' 用途 : 數字金額<expN>轉換為中文金額

Function Chnt(A)
Dim B, C, D

B = "元"

If A > 99999999 Or A <= 0 Then

B = "零" + B

Else

C = StrSpace(A, 8)

If Mid(C, 8, 1) <> "0" Then
B = Noch(Mid(C, 8, 1)) + B
End If

If Mid(C, 7, 1) <> " " Then
If Mid(C, 7, 1) <> "0" Then
B = Noch(Mid(C, 7, 1)) + "拾" + B
ElseIf Left(Trim(B), 1) <> "元" Then
B = "零" + B
End If
End If

If Mid(C, 6, 1) <> " " Then
If Mid(C, 6, 1) <> "0" Then
B = Noch(Mid(C, 6, 1)) + "佰" + B
ElseIf Left(Trim(B), 2) = "元" Then
ElseIf Left(Trim(B), 1) <> "零" Then
B = "零" + B
End If
End If

If Mid(C, 5, 1) <> " " Then
If Mid(C, 5, 1) <> "0" Then
B = Noch(Mid(C, 5, 1)) + "仟" + B
ElseIf Left(Trim(B), 1) = "元" Then
ElseIf Left(Trim(B), 1) <> "零" Then
B = "零" + B
End If
End If

If Mid(C, 4, 1) <> " " Then
B = "萬" + B
If Mid(C, 4, 1) <> "0" Then
B = Noch(Mid(C, 4, 1)) + B
End If
End If

If Mid(C, 3, 1) <> " " Then
If Mid(C, 3, 1) <> "0" Then
B = Noch(Mid(C, 3, 1)) + "拾" + B
ElseIf Left(Trim(B), 1) = "萬" Then
ElseIf Left(Trim(B), 1) <> "零" Then
B = "零" + B
End If
End If

If Mid(C, 2, 1) <> " " Then
If Mid(C, 2, 1) <> "0" Then
B = Noch(Mid(C, 2, 1)) + "佰" + B
ElseIf Left(Trim(B), 1) = "萬" Then
ElseIf Left(Trim(B), 1) <> "零" Then
B = "零" + B
End If
End If

If Mid(C, 1, 1) <> " " Then
If Mid(C, 1, 1) <> "0" Then
B = Noch(Mid(C, 1, 1)) + "仟" + B
End If
End If

End If

Chnt = " 新台幣 " + B + " 整"

End Function


' 語法 : Noch(<expC>)
' 用途 : 數字字串<expC>轉換為中文 (報表)

Function Noch(A)

If A = "0" Then
Noch = "零"
ElseIf A = "1" Then
Noch = "壹"
ElseIf A = "2" Then
Noch = "貳"
ElseIf A = "3" Then
Noch = "參"
ElseIf A = "4" Then
Noch = "肆"
ElseIf A = "5" Then
Noch = "伍"
ElseIf A = "6" Then
Noch = "陸"
ElseIf A = "7" Then
Noch = "柒"
ElseIf A = "8" Then
Noch = "捌"
ElseIf A = "9" Then
Noch = "玖"
End If

End Function

' 語法 : StrDate(<日期>)
' 用途 : 將電腦日期字串化 (例:StrDate(2000/8/12) = "2000.08.12")

Function StrDate(A)


StrDate = Str(Val(Format(A, "yyyymmdd")) * 100 + 1)

End Function

gregchen
2005-05-30, 02:51 PM
1. 去掉「零」就非正確的大寫國字數字,金融機構可能會「退票」喔!所以不能省。
2. 若有其他用途,非去掉「零」不可,可用字串比對的方法,並將「零」刪除即可。
可是現在支票機打出來的都沒有「零」,有「零」反而奇怪,並不會被「退票」,因為我常在開。
下一則的方法離我太遠了,不過還是很感謝。