Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    25

    Modules không thể viết chữ có dấu.

    Có anh chị nào giúp em phần này với. Em coppy chương trình đổi số ra chữ trong excel nhưng khi em past modules này vào thì có thay đổi font chữ, em không tài nào sử được. pác nào biết giúp em với. Đoạn mã cụ thể như sau: Theo hướng dẫn là dùng unicode nhưng em viết nó cũng không cho




    Function SoRaChu(ByVal NumCurrency As Currency) As String
    If NumCurrency = 0 Then
    SoRaChu = "Không đồng"
    Exit Function
    End If
    If NumCurrency > 922337203685477# Then ' Số lớn nhất của loại CURRENCY
    SoRaChu = "Không đổi được số lớn hơn 922,337,203,685,477"
    Exit Function
    End If
    Static CharVND(9) As String, BangChu As String, I As Integer
    Dim SoLe, SoDoi As Integer, PhanChan, Ten As String
    Dim DonViTien 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

    DonViTien = "đồng" ‘ Bạn có thể thay đơn vị tiền tệ khác ở đây
    DonViLe = "xu"

    CharVND(1) = "một"
    CharVND(2) = "hai"
    CharVND(3) = "ba"
    CharVND(4) = "bốn"
    CharVND(5) = "năm"
    CharVND(6) = "sáu"
    CharVND(7) = "bảy"
    CharVND(8-) = "tám"
    CharVND(9) = "chín"

    SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) '2 kí số lẻ
    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 = "không " + DonViTien + " "
    I = 5
    Else
    BangChu = ""
    I = 0
    End If
    While I <= 5
    Select Case I
    Case 0
    SoDoi = NganTy
    Ten = "ngàn tỷ"
    Case 1
    SoDoi = Ty
    Ten = "tỷ"
    Case 2
    SoDoi = Trieu
    Ten = "triệu"
    Case 3
    SoDoi = Ngan
    Ten = "ngàn"
    Case 4
    SoDoi = Dong
    Ten = DonViTien
    Case 5
    SoDoi = SoLe
    Ten = DonViLe
    End Select
    If SoDoi <> 0 Then
    Tram = Int(SoDoi / 100)
    Muoi = Int((SoDoi - Tram * 100) / 10)
    DonVi = (SoDoi - Tram * 100) - Muoi * 10
    BangChu = Trim(BangChu) + IIf(Len(BangChu) = 0, "", ", ") + _
    IIf(Tram <> 0, Trim(CharVND(Tram)) + " trăm ", "")
    If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
    BangChu = BangChu + "lẻ "
    Else
    If Muoi <> 0 Then
    BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
    Trim(CharVND(Muoi)) + " mươi ", "mười ")
    End If
    End If

    If Muoi <> 0 And DonVi = 5 Then
    BangChu = BangChu + "lăm " + Ten + " "
    Else
    If Muoi > 1 And DonVi = 1 Then
    BangChu = BangChu + "mốt " + Ten + " "
    Else
    BangChu = BangChu+IIf(DonVi <> 0,Trim(CharVND(DonVi))+" "+Ten+" ", Ten + " ")
    End If
    End If
    Else
    BangChu = BangChu + IIf(I = 4, DonViTien + " ", "")
    End If
    I = I + 1
    Wend
    If SoLe = 0 Then
    BangChu = BangChu + "chẵn"
    End If
    Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
    SoRaChu = BangChu
    End Function
    -----------------------------------------------------------------------------------------
    Khi tớ past qua nó thành thế này đây. không viết được bằng bãng mã nào hết.



    Function SoRaChu(ByVal NumCurrency As Currency) As String
    If NumCurrency = 0 Then
    SoRaChu = "Không ??ng"
    Exit Function
    End If
    If NumCurrency > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY
    SoRaChu = "Không ??i ???c s? l?n h?n 922,337,203,685,477"
    Exit Function
    End If
    Static CharVND(9) As String, BangChu As String, I As Integer
    Dim SoLe, SoDoi As Integer, PhanChan, Ten As String
    Dim DonViTien 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

    DonViTien = "??ng" ' B?n có th? thay ??n v? ti?n t? khác ? ?ây
    DonViLe = "xu"

    CharVND(1) = "m?t"
    CharVND(2) = "hai"
    CharVND(3) = "ba"
    CharVND(4) = "b?n"
    CharVND(5) = "n?m"
    CharVND(6) = "sáu"
    CharVND(7) = "b?y"
    CharVND(8-) = "tám"
    CharVND(9) = "chín"

    SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) '2 kí s? l?
    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 = "không " + DonViTien + " "
    I = 5
    Else
    BangChu = ""
    I = 0
    End If
    While I <= 5
    Select Case I
    Case 0
    SoDoi = NganTy
    Ten = "ngàn t?"
    Case 1
    SoDoi = Ty
    Ten = "t?"
    Case 2
    SoDoi = Trieu
    Ten = "tri?u"
    Case 3
    SoDoi = Ngan
    Ten = "ngàn"
    Case 4
    SoDoi = Dong
    Ten = DonViTien
    Case 5
    SoDoi = SoLe
    Ten = DonViLe
    End Select
    If SoDoi <> 0 Then
    Tram = Int(SoDoi / 100)
    Muoi = Int((SoDoi - Tram * 100) / 10)
    DonVi = (SoDoi - Tram * 100) - Muoi * 10
    BangChu = Trim(BangChu) + IIf(Len(BangChu) = 0, "", ", ") + _
    IIf(Tram <> 0, Trim(CharVND(Tram)) + " tr?m ", "")
    If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
    BangChu = BangChu + "l? "
    Else
    If Muoi <> 0 Then
    BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
    Trim(CharVND(Muoi)) + " m??i ", "m??i ")
    End If
    End If

    If Muoi <> 0 And DonVi = 5 Then
    BangChu = BangChu + "l?m " + Ten + " "
    Else
    If Muoi > 1 And DonVi = 1 Then
    BangChu = BangChu + "m?t " + Ten + " "
    Else
    BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + " " + Ten + " ", Ten + " ")
    End If
    End If
    Else
    BangChu = BangChu + IIf(I = 4, DonViTien + " ", "")
    End If
    I = I + 1
    Wend
    If SoLe = 0 Then
    BangChu = BangChu + "ch?n"
    End If
    Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
    SoRaChu = BangChu
    End Function

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Modules không thể viết chữ có dấu.

    Em vào trang www.****************** để nhờ các bậc tiền bối nhé.Tại danketoan chỉ có mỗi Bằng Lăng là giỏi vụ này thôi, nhưng có lẽ BL bận nên chưa giúp bạn được đâu.

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Modules không thể viết chữ có dấu.

    Bạn vào đọc bài này nếu bạn đã có lưng vốn lập trình VBA:
    http://**************/forum/showthread.php?p=193550#post193550

    Nếu bạn không biết gì về VBA cả thì sang bên giaiphapexcel cho tiện. Bên đó có sẵn nhiều cái rất hay chỉ việc copy về rồi chạy.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •