Mong ae giúp em công thức (2 người xem)

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

viva62h9300

Thành viên mới
Tham gia
10/4/26
Bài viết
4
Được thích
1
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
 

File đính kèm

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
Gửi bác nhé!

Mã:
docmet = Replace(docmet, " ph", ", ph")
 

File đính kèm

Trướ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ư:

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
Bạn biết cách thức 'ngang ngay sổ thẳng' nhưng không giữ kỷ cương về nó!

$$$$@
 
Trướ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ư:

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
Bạn biết cách thức 'ngang ngay sổ thẳng' nhưng không giữ kỷ cương về nó!

$$$$@
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ác
 

Bài viết mới nhất

Back
Top Bottom