viva62h9300
Thành viên mới

- Tham gia
- 10/4/26
- Bài viết
- 4
- Được thích
- 1





Gửi bác nhé!Mình có file excel dọc số thành chữ ví dụ 67,5 đọc "sáu mươi bảy phẩy năm mươi mét vuông" mình muốn đọc thành " sáu mươi bảy, phẩy năm mét vuông" mong ae biết giúp dùm ah
docmet = Replace(docmet, " ph", ", ph")

Cảm ơn bác đã quan tâm giúp. Mình vào vẫn không được bác ah!Gửi bác nhé!
Mã:docmet = Replace(docmet, " ph", ", ph")
Function docmet(ByVal NumCurrency As Currency) As String
Dim CharVND(10) As String, BangChu As String, i As Integer
Dim SoLe, SoDoi As Integer, PhanChan, Ten As String
Dim DonViM As String, DonViLe As String
Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer
Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer
DonViM = ";6D;E9;74;A0;76;75;F4;6E;67" ' met vuong '
DonViLe = DonViM
If NumCurrency = 0 Then
docmet = UnicodeChar(";4B;68;F4;6E;67;20" & DonViM) 'Khong '
Exit Function
End If
If NumCurrency > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY
vnd = UnicodeChar(";4B;68;F4;6E;67;20;111;1ED5;69;20;111;1B0;1EE3;63;20;73" & _
";1ED1;20;6C;1EDB;6E;20;68;1A1;6E;20;39;32;32;2C;33;33;37" & _
";2C;32;30;33;2C;36;38;35;2C;34;37;37")
Exit Function
End If
CharVND(0) = ";6B;68;F4;6E;67"
CharVND(1) = ";6D;1ED9;74" ' m?t '
CharVND(2) = ";68;61;69" ' hai '
CharVND(3) = ";62;61" ' ba '
CharVND(4) = ";62;1ED1;6E" ' bôn '
CharVND(5) = ";6E;103;6D" ' nam '
CharVND(6) = ";73;E1;75" ' sáu '
CharVND(7) = ";62;1EA3;79" ' b?y '
CharVND(8) = ";74;E1;6D" ' tám '
CharVND(9) = ";63;68;ED;6E" ' chín '
SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) ' 2 kí sô '
PhanChan = Trim$(str$(Int(NumCurrency)))
PhanChan = Space(15 - Len(PhanChan)) + PhanChan
NganTy = Val(Left(PhanChan, 3))
Ty = Val(Mid$(PhanChan, 4, 3))
Trieu = Val(Mid$(PhanChan, 7, 3))
Ngan = Val(Mid$(PhanChan, 10, 3))
Dong = Val(Mid$(PhanChan, 13, 3))
If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then
BangChu = ";6B;68;F4;6E;67;20" + DonViM + ";20"
i = 5
Else
BangChu = ""
i = 0
End If
'-----------------------------------------------------
' Bát dâu d?i
'-----------------------------------------------------
While i <= 5
Select Case i
Case 0
SoDoi = NganTy
Ten = ";6E;67;E0;6E;20;74;1EF7;2C" ' ngàn t?
Case 1
SoDoi = Ty
Ten = ";74;1EF7;2C" ' t?
Case 2
SoDoi = Trieu
Ten = ";74;72;69;1EC7;75;2C" ' tri?u
Case 3
SoDoi = Ngan
Ten = ";6E;67;E0;6E;2C" ' ngàn
Case 4
SoDoi = Dong
Ten = "" ' d?ng
If SoLe > 0 Then Ten = ";70;68;1EA9;79"
Case 5
SoDoi = SoLe
Ten = DonViLe ' xu
End Select
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
If Right(BangChu, 3) = ";20" Then
BangChu = Left(BangChu, Len(BangChu) - 3)
End If
If BangChu <> "" And i < 5 Then
BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";20") + _
Trim(CharVND(Tram)) + ";20;74;72;103;6D;20"
Else
BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";20") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "")
End If
If BangChu <> "" Then
If Muoi = 0 And DonVi <> 0 Then
BangChu = BangChu + ";6C;1EBB;20"
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20")
End If
End If
If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + ";6C;103;6D;20" + Ten
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + ";6D;1ED1;74;20" + Ten
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten)
End If
End If
Else
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
BangChu = BangChu + ";6C;1EBB;20"
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20")
End If
End If
If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + ";6C;103;6D;20" + Ten
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + ";6D;1ED1;74;20" + Ten
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten)
End If
End If
BangChu = BangChu + IIf(i = 4, "", "")
End If
End If
i = i + 1
Wend
If SoLe = 0 Then
BangChu = BangChu + IIf(Right(BangChu, 3) = ";20", "", "") + DonViM
End If
BangChu = UnicodeChar(BangChu)
'Ð?i sang ti?ng Vi?t Unicode
' Ð?i ch? cái d?u tiên thành ch? hoa
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
docmet = BangChu + "."
docmet = Replace(docmet, " ph", ", ph")
End Function


Lời đầu tiên minh xin cảm ơn và ghi nhận những góp ý của bác, nhưng thật ra mình khôgn biết chứ không có ý gì khácTrước tiên, bài loại này nên đăng trong mục 'Lập trình . . . . '
& nữa, để được giúp 1 cách nhanh chóng & gây thiện cảm cho người giúp mình, bạn cần 'ngang ngay sổ thẳng' gần giống như:
Bạn biết cách thức 'ngang ngay sổ thẳng' nhưng không giữ kỷ cương về nó!PHP:Function docmet(ByVal NumCurrency As Currency) As String Dim CharVND(10) As String, BangChu As String, i As Integer Dim SoLe, SoDoi As Integer, PhanChan, Ten As String Dim DonViM As String, DonViLe As String Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer DonViM = ";6D;E9;74;A0;76;75;F4;6E;67" ' met vuong ' DonViLe = DonViM If NumCurrency = 0 Then docmet = UnicodeChar(";4B;68;F4;6E;67;20" & DonViM) 'Khong ' Exit Function End If If NumCurrency > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY vnd = UnicodeChar(";4B;68;F4;6E;67;20;111;1ED5;69;20;111;1B0;1EE3;63;20;73" & _ ";1ED1;20;6C;1EDB;6E;20;68;1A1;6E;20;39;32;32;2C;33;33;37" & _ ";2C;32;30;33;2C;36;38;35;2C;34;37;37") Exit Function End If CharVND(0) = ";6B;68;F4;6E;67" CharVND(1) = ";6D;1ED9;74" ' m?t ' CharVND(2) = ";68;61;69" ' hai ' CharVND(3) = ";62;61" ' ba ' CharVND(4) = ";62;1ED1;6E" ' bôn ' CharVND(5) = ";6E;103;6D" ' nam ' CharVND(6) = ";73;E1;75" ' sáu ' CharVND(7) = ";62;1EA3;79" ' b?y ' CharVND(8) = ";74;E1;6D" ' tám ' CharVND(9) = ";63;68;ED;6E" ' chín ' SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) ' 2 kí sô ' PhanChan = Trim$(str$(Int(NumCurrency))) PhanChan = Space(15 - Len(PhanChan)) + PhanChan NganTy = Val(Left(PhanChan, 3)) Ty = Val(Mid$(PhanChan, 4, 3)) Trieu = Val(Mid$(PhanChan, 7, 3)) Ngan = Val(Mid$(PhanChan, 10, 3)) Dong = Val(Mid$(PhanChan, 13, 3)) If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then BangChu = ";6B;68;F4;6E;67;20" + DonViM + ";20" i = 5 Else BangChu = "" i = 0 End If '----------------------------------------------------- ' Bát dâu d?i '----------------------------------------------------- While i <= 5 Select Case i Case 0 SoDoi = NganTy Ten = ";6E;67;E0;6E;20;74;1EF7;2C" ' ngàn t? Case 1 SoDoi = Ty Ten = ";74;1EF7;2C" ' t? Case 2 SoDoi = Trieu Ten = ";74;72;69;1EC7;75;2C" ' tri?u Case 3 SoDoi = Ngan Ten = ";6E;67;E0;6E;2C" ' ngàn Case 4 SoDoi = Dong Ten = "" ' d?ng If SoLe > 0 Then Ten = ";70;68;1EA9;79" Case 5 SoDoi = SoLe Ten = DonViLe ' xu End Select If SoDoi <> 0 Then Tram = Int(SoDoi / 100) Muoi = Int((SoDoi - Tram * 100) / 10) DonVi = (SoDoi - Tram * 100) - Muoi * 10 If Right(BangChu, 3) = ";20" Then BangChu = Left(BangChu, Len(BangChu) - 3) End If If BangChu <> "" And i < 5 Then BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";20") + _ Trim(CharVND(Tram)) + ";20;74;72;103;6D;20" Else BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";20") + _ IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "") End If If BangChu <> "" Then If Muoi = 0 And DonVi <> 0 Then BangChu = BangChu + ";6C;1EBB;20" Else If Muoi <> 0 Then BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _ Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20") End If End If If Muoi <> 0 And DonVi = 5 Then BangChu = BangChu + ";6C;103;6D;20" + Ten Else If Muoi > 1 And DonVi = 1 Then BangChu = BangChu + ";6D;1ED1;74;20" + Ten Else BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) End If End If Else If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then BangChu = BangChu + ";6C;1EBB;20" Else If Muoi <> 0 Then BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _ Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20") End If End If If Muoi <> 0 And DonVi = 5 Then BangChu = BangChu + ";6C;103;6D;20" + Ten Else If Muoi > 1 And DonVi = 1 Then BangChu = BangChu + ";6D;1ED1;74;20" + Ten Else BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) End If End If BangChu = BangChu + IIf(i = 4, "", "") End If End If i = i + 1 Wend If SoLe = 0 Then BangChu = BangChu + IIf(Right(BangChu, 3) = ";20", "", "") + DonViM End If BangChu = UnicodeChar(BangChu) 'Ð?i sang ti?ng Vi?t Unicode ' Ð?i ch? cái d?u tiên thành ch? hoa Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1)) docmet = BangChu + "." docmet = Replace(docmet, " ph", ", ph") End Function
![]()