1. 程式人生 > >VB 金額大小寫轉換(兩種方法)

VB 金額大小寫轉換(兩種方法)

' 本模組生成漢字大寫的金額
'
Option Explicit
' 名稱: CCh
' 得到一位數字 N1 的漢字大寫
' 0 返回 ""
Function CCh(N1) As String
Select Case
N1
Case 0
CCh = "零"
Case 1
CCh = "壹"
Case 2
CCh = "貳"
Case 3
CCh = "叄"
Case 4
CCh = "肆"
Case 5
CCh = "伍"
Case 6
CCh = "陸"
Case 7
CCh = "柒"
Case 8
CCh = "捌"
Case 9
CCh = "玖"
End Select
End Function
'()Function

'名稱: ChMoney
' 得到數字 N1 的漢字大寫
' 最大為 千萬位
' O 返回 ""
Public Function ChMoney(N1) As String
Dim
tMoney As String
Dim
lMoney As String
Dim
tn '小數位置
Dim ST1 As String
Dim
T1 As String
Dim
s1 As String '臨時STRING 小數部分
Dim s2 As String '1000 以內
Dim s3 As String '10000



If N1 = 0 Then
ChMoney = " "
Exit Function
End If
If
N1 < 0 Then
ChMoney = "負" + ChMoney(Abs(N1))
Exit Function
End If
tMoney = Trim(Str(N1))
tn = InStr(tMoney,
".") '小數位置
s1 = ""
If tn <> 0 Then
ST1 = Right(tMoney, Len(tMoney) - tn)
If ST1 <> "" Then
T1 = Left(ST1, 1)
ST1 = Right(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s1 = s1 + CCh(Val(T1)) + "角"
End If
If
ST1 <> "" Then
T1 = Left(ST1, 1)
s1 = s1 + CCh(Val(T1)) +
"分"
End If
End If
ST1 = Left(tMoney, tn - 1)
Else
ST1 = tMoney
End If

s2 = ""
If ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
s2 = CCh(Val(T1)) + s2
End If

If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s2 = CCh(Val(T1)) + "拾" + s2
Else
If
Left(s2, 1) <> "零" Then s2 = "零" + s2
End If
End If

If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s2 = CCh(Val(T1)) + "佰" + s2
Else
If
Left(s2, 1) <> "零" Then s2 = "零" + s2
End If
End If

If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s2 = CCh(Val(T1)) + "仟" + s2
Else
If
Left(s2, 1) <> "零" Then s2 = "零" + s2
End If
End If

s3 = ""
If ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
s3 = CCh(Val(T1)) + s3
End If


If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s3 = CCh(Val(T1)) + "拾" + s3
Else
If
Left(s3, 1) <> "零" Then s3 = "零" + s3
End If
End If

If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s3 = CCh(Val(T1)) + "佰" + s3
Else
If
Left(s3, 1) <> "零" Then s3 = "零" + s3
End If
End If

If
ST1 <> "" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) -
1)
If T1 <> "0" Then
s3 = CCh(Val(T1)) + "仟" + s3
End If
End If
If
Right(s2, 1) = "零" Then s2 = Left(s2, Len(s2) - 1)

If Len(s3) > 0 Then

If
Right(s3, 1) = "零" Then s3 = Left(s3, Len(s3) - 1)
s3 = s3 &
"萬"
End If

ChMoney = IIf(s3 & s2 = "", s1, s3 & s2 & "元整" & s1)
End Function