thehungqnu
Thành viên mới
- Tham gia
- 12/10/07
- Bài viết
- 35
- Được thích
- 16
Các bạn có thể cho minh đoạn VB đổi số sang chữ 3 số VD 275 thành Hai bảy lăm
Tôi thấy vẫn sử dụng tốt đấy chứ, không giới hạn trên 1000 tỷ như bạn nói. Bạn thử với ADD-IN dưới đây làm ví dụ nhé. ThânCác hàm đọc số thành chữ hiện nay thường chỉ đếm đến nhỏ hơn 1.000 tỷ. Em muốn viết số hàm đó lên đến 10.000 tỷ thì làm thế nào mong được giúp đỡ
Không biết bạn dùng thế nào mà bảo không được nhỉ. Thử cái này xem sao:chán thế? em tải bao nhiêu cái về mà không dùng được?bác nào dùng được rồi bản ngon? gủi em xin với (cho xin cả hứuowng dẫn cụ thể để em gui cho mấy em cùng phòng ) tuanduongthanh@yahoo.com cảm ơn các bac nhieu?
=DocSo(Number,Code)
Nếu bạn sử dụng không được do không biết dùng Add-in thì đó là do bạn. Có thể tìm cách nạp Add-in trên diễn đàn.Number: Số cần đọc
Code: Bảng mã, có các tùy chọn sau:
+ 1: Mã Unicode
+ 2: Mã VNI Windown
+ 3: TCVN3 (ABC)
Đoạn code bác post lên chưa hoàn chỉnh lắm. Thiếu phần đầu và phần cuối. Thiếu hàm UnicodeChar. Nếu đoạn code trên là của một hàm chuyển đổi thì phải chỉnh lại như sau:Nguyên văn bởi le tin
Chào các bạn
Đoạn code này dịch số ra chữ mình lấy trên diễn đàn(Xin lỗi không nhớ tên tác giả) , nhưng lỗi phần thập phân . VD : ...,1 -> dịch là ... , chín xu
...,21 -> dịch là ... , hai mươi xu
Nhờ các bạn chỉnh giúp ( nhớ đánh dấu chỗ sửa)
Cảm ơn
[COLOR="Red"][B]Function vnd(ByVal NumCurrency As Currency) As String[/B][/COLOR]
On Error Resume Next
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 = ";111;1ED3;6E;67" ' d?ng
DonViLe = ";78;75" ' xu
If [B][COLOR="red"]NumCurrency[/COLOR][/B]= 0 Then
[B][COLOR="red"]vnd[/COLOR][/B] = UnicodeChar(";4B;68;F4;6E;67;20" & DonViTien)
Exit Sub
End If
If [S46] > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY
[i47] = 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;3 3;33;37" & ";2C;32;30;33;2C;36;38;35;2C;34;37;37")
Exit Sub
End If
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(([S46] - Int([S46])) * 100) ' 2 kí s?
PhanChan = Trim$(str$(Int([S46])))
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" + DonViTien + ";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" ' ngàn t?
Case 1
SoDoi = Ty
Ten = ";74;1EF7" ' t?
Case 2
SoDoi = Trieu
Ten = ";74;72;69;1EC7;75" ' tri?u
Case 3
SoDoi = Ngan
Ten = ";6E;67;E0;6E" ' ngàn
Case 4
SoDoi = Dong
Ten = DonViTien ' d?ng
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
BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";2C;20") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "")
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 + ";20"
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + ";6D;1ED1;74;20" + Ten + ";20"
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) + ";20"
End If
End If
Else
BangChu = BangChu + IIf(I = 4, DonViTien + "", "")
End If
I = I + 1
Wend
If SoLe = 0 Then
BangChu = BangChu + IIf(Right(BangChu, 3) = ";20", "", ";20") + ";63;68;1EB5;6E"
End If
'Ð?i sang ti?ng Vi?t Unicode
BangChu = UnicodeChar(BangChu)
' Ð?i ch? cái d?u tiên thành ch? hoa
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
[B][COLOR="red"]vnd = BangChu[/COLOR][/B]
[B][COLOR="red"]End Function[/COLOR][/B]
Lúc chưa có tác giả trả lời, bạn thử code này xemBạn Ongtrungducmx25 ơi! Cám ơn bạn đã cho tôi hàn VND như tôi không thể thêm chữ đồng vào cuối dòng được tôi sai chỗ nào chỉ cho tôi với . ( VD: =VND( 1579) nó chỉ ra Một ngàn năm trăm bảy chín thôi mà không có chữa đồng vào
Bạn Ongtrungducmx25 ơi! Cám ơn bạn đã cho tôi hàn VND như tôi không thể thêm chữ đồng vào cuối dòng được tôi sai chỗ nào chỉ cho tôi với . ( VD: =VND( 1579) nó chỉ ra Một ngàn năm trăm bảy chín thôi mà không có chữa đồng vào
Mình đã chỉnh cái AddIn trên. Các bạn dùng thử xem.