เห่อ ๆ อยากได้เหรอ..กว่าจะคิดได้นานมาก ๆ เรยนะ..ลำบากพอตัว..แต่ถ้าจะเอาก็ไม่มีปัญหา แต่จะให้เป็นการส่วนตัวแร้วกันนะ Add มาขอได้หรือปรึกษาเกี่ยวกับ asp ได้
Date :
9 ธ.ค. 2548 11:46:02
By :
นายกระจอก
No. 2
Guest
Function CurrencyString(Byval Number As Variant) As String
Dim CType(16) As String
Dim Num(9) As String
Dim L, i As Integer
Dim Str As String
Num(0) = "": Num(1) = "หนึ่ง"
Num(2) = "สอง": Num(3) = "สาม"
Num(4) = "สี่": Num(5) = "ห้า"
Num(6) = "หก": Num(7) = "เจ็ด"
Num(8) = "แปด": Num(9) = "เก้า"
CType(1) = "": CType(2) = ""
CType(3) = "": CType(4) = ""
CType(5) = "สิบ": CType(6) = "ร้อย"
CType(7) = "พัน": CType(8) = "หมื่น"
CType(9) = "แสน": CType(10) = "ล้าน"
CType(11) = "สิบ": CType(12) = "ร้อย"
CType(13) = "พัน": CType(14) = "หมื่น"
CType(15) = "แสน": CType(16) = "ล้าน"
If Not (IsNumeric(Number)) Then
CurrencyString = "ข้อมูลไม่ใช่ตัวเลข"
Exit Function
End If
Str = Format(Number, "###0.00")
L = Len(Str)
If L > 16 Then 'Check Over Flow
CurrencyString = "ฟังก์ชันไม่สามารถหาค่าที่มากกว่าล้านล้านได้"
Exit Function
ElseIf L = 0 Then
CurrencyString = ""
Exit Function
End If
ReDim LStr(L + 1) As String
LStr(5) = 0
For i = 1 To L
LStr(L + 1 - i) = Mid(Str, i, 1)
Next i
Str = ""
For i = L To 4 Step -1
If ((i = 5) Or (i = 11)) And (LStr(i) = 2) Then
Num(2) = "ยี่"
ElseIf ((i = 5) Or (i = 11)) And (LStr(i) = 1) Then
Num(1) = ""
ElseIf (i = 4) And (LStr(i) = 1) And (L > 4) And (LStr(5) <> 0) Then
Num(1) = "เอ็ด"
End If
If L > 10 Then
If (i = 10) And (LStr(i) = 1) And (L > 10) And (LStr(11) <> 0) Then
Num(1) = "เอ็ด"
End If
End If
If (LStr(i) <> 0) Or (i = 10) Then
Str = Str & Num(LStr(i)) & CType(i) 'Init Main String
End If
Num(2) = "สอง"
Num(1) = "หนึ่ง"
Next i
If Not ((L = 4) And (LStr(4) = 0)) Then
Str = Str & "บาท"
End If
'behind dot
If LStr(2) = 2 Then
Num(2) = "ยี่"
End If
If (LStr(2) <> 0) Then
If LStr(2) <> 1 Then
Str = Str & Num(LStr(2))
End If
Str = Str & "สิบ"
End If
Num(2) = "สอง"
If (LStr(1) = 1) And (LStr(2) <> 0) Then
Num(1) = "เอ็ด"
End If
Str = Str & Num(LStr(1))
If (LStr(1) <> 0) Or (LStr(2) <> 0) Then
If Trim$(Str) <> "" Then Str = Str & "สตางค์"
Else
If Trim$(Str) <> "" Then Str = Str & "ถ้วน"
End If
CurrencyString = Str
End Function