Các Thầy ơi giúp em làm sao để có dấu phẩy (,) phân tách hàng tỷ, triệu, nghìn, ... với đoạn code sau ah:
Dim CH As String
Dim tong_tam As Integer
'****************BANG CHU VIET NAM********
Public Function EUR(So As Double) As String
If Abs(So) > 999999999999999# Then
MsgBox "Xin l" & ChrW(7895) & "i, s" & ChrW(7889) & " " & ChrW(273) & "ã v" & ChrW(432) & ChrW(7907) & "t h" & ChrW(417) & "n tr" & ChrW(259) & "m nghìn t" & ChrW(7927) & ", không th" & ChrW(7875) & " biên d" & ChrW(7883) & "ch " & ChrW(273) & ChrW(432) & ChrW(7907) & "c"
Exit Function
End If
If Fix(So) = 0 Then
EUR = "Không Euro"
Else
'EUR = FcaseVU(Dichchu(So), 1) + " " & "Euro"
EUR = UCase(Left(Dichchu(So), 1)) + Mid(Dichchu(So), 2, 999) + "Euro"
End If
End Function
Public Function USD(So As Double) As String
If Abs(So) > 999999999999999# Then
MsgBox "Xin l" & ChrW(7895) & "i, s" & ChrW(7889) & " " & ChrW(273) & "ã v" & ChrW(432) & ChrW(7907) & "t h" & ChrW(417) & "n tr" & ChrW(259) & "m nghìn t" & ChrW(7927) & ", không th" & ChrW(7875) & " biên d" & ChrW(7883) & "ch " & ChrW(273) & ChrW(432) & ChrW(7907) & "c"
Exit Function
End If
If Fix(So) = 0 Then
USD = "Không " & ChrW(273) & "ô la M" & ChrW(7929)
Else
'USD = FcaseVU(Dichchu(So), 1) + " " & ChrW(273) & "ô la M" & ChrW(7929)
USD = UCase(Left(Dichchu(So), 1)) + Mid(Dichchu(So), 2, 999) + ChrW(273) & "ô la M" & ChrW(7929)
End If
End Function
Public Function VND(So As Double) As String
If Abs(So) > 999999999999999# Then
MsgBox "Xin l" & ChrW(7895) & "i, s" & ChrW(7889) & " " & ChrW(273) & "ã v" & ChrW(432) & ChrW(7907) & "t h" & ChrW(417) & "n tr" & ChrW(259) & "m nghìn t" & ChrW(7927) & ", không th" & ChrW(7875) & " biên d" & ChrW(7883) & "ch " & ChrW(273) & ChrW(432) & ChrW(7907) & "c"
Exit Function
End If
If Fix(So) = 0 Then
VND = "Không " & ChrW(273) & ChrW(7891) & "ng"
Else
'VND = FcaseVU(Dichchu(So), 1) + " " & ChrW(273) & ChrW(7891) & "ng"
VND = UCase(Left(Dichchu(So), 1)) + Mid(Dichchu(So), 2, 999) + ChrW(273) & ChrW(7891) & "ng"
End If
End Function
'*********DICH CHU SO *********8 ''nghìn '
Public Function Dichchu(So) As String
Dim tam As String
Dim Nhom0 As String, Nhom1 As String, Nhom2 As String, Nhom3 As String, Nhom4 As String
If Abs(So) > 999999999999999# Then
MsgBox "Xin loi, so da vuot hon tram ngan ty, khong the bien dich duoc !!!"
Exit Function
End If
If IsDate(So) Then
'Ham con sai cho nay 'Ham con sai cho nay 'Ham con sai cho nay 'Ham con sai cho nay 'Ham con sai cho nay
Dichchu = Format(So, "dd/mm/yyyy")
Exit Function
End If
So = Fix(So)
If So < 0 Then
sogiu = So
So = So * (-1)
End If
CH = Space(0)
tam = Right((Space(15) + Trim(str(So))), 15)
Nhom0 = Mid(tam, 1, 3)
Nhom1 = Mid(tam, 4, 3)
Nhom2 = Mid(tam, 7, 3)
Nhom3 = Mid(tam, 10, 3)
Nhom4 = Mid(tam, 13, 3)
tong_tam = 0
If Val(Nhom0) > 0 And (Val(Nhom1) = 0 Or Val(Nhom2) = 0 Or Val(Nhom3) = 0 Or Val(Nhom4) = 0) Then
CH = CH + Dich3so(Nhom0, "nghìn t" & ChrW(7927) & " ") 'nghin ty
tong_tam = tong_tam + Val(Nhom0)
Else
CH = CH + Dich3so(Nhom0, "nghìn ")
tong_tam = tong_tam + Val(Nhom0)
End If
CH = CH + Dich3so(Nhom1, "t" & ChrW(7927) & " ")
tong_tam = tong_tam + Val(Nhom1)
CH = CH + Dich3so(Nhom2, "tri" & ChrW(7879) & "u ")
tong_tam = tong_tam + Val(Nhom2)
CH = CH + Dich3so(Nhom3, "nghìn ")
tong_tam = tong_tam + Val(Nhom3)
CH = CH + Dich3so(Nhom4, "")
If sogiu < 0 Then
CH = "Âm " + CH
End If
Dichchu = CH
End Function
Private Function Dich3so(Nhom As String, dv As String) As String
'Co xet den so O dau tien vd: 009 = khong tram le chin (dung doc tien)
Dim x As Integer, y As Integer, z As Integer
Dim ch1 As String
Nhom = Right(Space(3) & Nhom, 3)
x = Val(Left(Nhom, 1))
y = Val(Mid(Nhom, 2, 1))
z = Val(Right(Nhom, 1))
If x = 0 And y = 0 And z = 0 Then
dv = ""
Else
If x = 0 Then
If tong_tam <= 0 Then
ch1 = ch1
Else
If y <> 0 Or z <> 0 Then
ch1 = ch1 + "không tr" & ChrW(259) & "m "
End If
End If
Else
ch1 = ch1 + CHUSO(x) + "tr" & ChrW(259) & "m "
End If
'***************
If y = 0 Then
If z <> 0 Then
If tong_tam <= 0 And x = 0 Then
ch1 = ch1
Else
ch1 = ch1 + "l" & ChrW(7867) & " "
End If
End If
ElseIf y = 1 Then
ch1 = ch1 + "m" & ChrW(432) & ChrW(7901) & "i "
Else
ch1 = ch1 + CHUSO(y) + "m" & ChrW(432) & ChrW(417) & "i "
End If
'***********
If z = 0 Then
ch1 = ch1
ElseIf z = 1 Then
If y = 1 Or y = 0 Then
ch1 = ch1 + CHUSO(z)
Else
ch1 = ch1 + "m" & ChrW(7889) & "t "
End If
ElseIf z = 5 Then
If y = 0 Then
ch1 = ch1 + CHUSO(z)
Else
ch1 = ch1 + "l" & ChrW(259) & "m "
End If
Else
ch1 = ch1 + CHUSO(z)
End If
End If
Dich3so = ch1 + dv
End Function
Private Function Dichso(Nhom As String) As String
'Khong xet den so O dau tien vd: 009 = chin (dung doc so thu tu)
Dim x As Integer, y As Integer, z As Integer
Dim ch1 As String
Nhom = Right(Space(3) & Nhom, 3)
x = Val(Left(Nhom, 1))
y = Val(Mid(Nhom, 2, 1))
z = Val(Right(Nhom, 1))
ch1 = ""
If x = 0 And y = 0 And z = 0 Then
Dichso = ""
Exit Function
Else
If x = 0 Then
ch1 = ch1
Else
ch1 = ch1 + CHUSO(x) + "tr" & ChrW(259) & "m "
End If
'***************
If y = 0 Then
If x = 0 Then
ch1 = ch1
Else
ch1 = ch1 + "l" & ChrW(7867) & " "
End If
ElseIf y = 1 Then
ch1 = ch1 + "m" & ChrW(432) & ChrW(7901) & "i "
Else
ch1 = ch1 + CHUSO(y) + "m" & ChrW(432) & ChrW(417) & "i "
End If
'***********
If z = 0 Then
ch1 = ch1
ElseIf z = 1 Then
If y = 1 Or y = 0 Then
ch1 = ch1 + CHUSO(z)
Else
ch1 = ch1 + "m" & ChrW(7889) & "t "
End If
ElseIf z = 5 Then
If y = 0 Then
ch1 = ch1 + CHUSO(z)
Else
ch1 = ch1 + "l" & ChrW(259) & "m "
End If
Else
ch1 = ch1 + CHUSO(z)
End If
End If
Dichso = ch1 + dv
End Function
Private Function CHUSO(Num As Integer) As String
tmpCHUSO = Array("không ", "m" & ChrW(7897) & "t ", "hai ", "ba ", "b" & ChrW(7889) & "n ", "n" & ChrW(259) & "m ", "sáu ", "b" & ChrW(7843) & "y ", "tám ", "chín ")
CHUSO = tmpCHUSO(Num)
End Function