Đổi số ra chữ

Liên hệ QC

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
 
Mình hay sử dụng hàm =readnum() của anh hoangdanh282vn bên webketoan để đọc số ra chữ
=readnum(12345) cho ra Mười hai nghìn ba trăm bốn lăm (font Time New Roman)
="("&readnum(12345)&" đồng)." cho ra (Mười hai nghìn ba trăm bốn lăm đồng).
hàm này không đọc số sau dấu "," vì không sử dụng hào, xu
có 3 loại font chữ sử dụng:
ReadNum(So,"uni"), ReadNum(So) : Dùng cho Font Unicode - Mặc định
ReadNum(So,"vni") : Dùng cho Font VniTime
ReadNum(So,"tcv") : Dùng cho Font Tcvn3
 

File đính kèm

Upvote 0
Mình cũng có tải về sao mình dùng công thức nó báo name# à, các bạn giúp mình với
 
Upvote 0
[cám ơn bạn rất nhiều, mình đã cài được VNDUni.rar rồi nhưng nó chỉ dùng được trên font unicode thôi à, muốn dùng trên file VNI thì có phần mềm nào không bạn vì mình làm lương nên rất cần mà font của mình toàn là VNi thôi à,
 
Upvote 0
Cảm ơn bác, em sử dụng tốt rồi.
Nhưng em cần thêm sự giúp đỡ như sau: em cần đọc số ra chữ kilogram.
ví dụ: 123.490,00 : Đọc là " Một trăm hai mươi ba ngàn bốn trăm chín mươi kilogram"
còn 123.490,12 : Đọc là " Một trăm hai mươi ba ngàn bốn trăm chín mươi phẩy mười hai kilogram"
Các pác giúp em cái, em đang cần
 
Upvote 0
Mình muốn hiển thị cả "không trăm" thì làm như thế nào vậy các bác?
Ví dụ của mình. Số tiền là: 45.045.000 đồng
Mình dùng "=VND(Số tiền)" thì chỉ nhận được: Bốn mươi lăm triệu, bốn mươi lăm ngàn đồng chẵn.
Cái mình cần là: Bốn mươi lăm triệu, không trăm bốn mươi lăm ngàn đồng chẵn.
 
Upvote 0
Đổi số thành chữ nhanh cả 1 cột trong excel

Em cho em hỏi với ạ.
Hiện nay em đã đổi được từ chữ sang số, em dùng addins, nhưng em chỉ đổi được từng ô một thôi ạ.
có cách nào copy để đổi được số của cả 1 cột sang chữ ko ạ?
Em xin chân thành cảm ơn
 
Upvote 0
Em cho em hỏi với ạ.
Hiện nay em đã đổi được từ chữ sang số, em dùng addins, nhưng em chỉ đổi được từng ô một thôi ạ.
có cách nào copy để đổi được số của cả 1 cột sang chữ ko ạ?
Em xin chân thành cảm ơn
Nghĩa là bạn có 1 cột gồm rất nhiều các con số (ví dụ cột A). Bạn muốn đổi tất cả số ở cột A ra chữ?
Nếu vậy bạn dùng B1=vnd(A1) ; tổng quát là B1=cú pháp hàm(A1)
Rồi copy cho tất cả các ô dưới của cột B. -->OK
 
Upvote 0
Chào các bác!
Tìm hiểu rất nhều nhưng chưa thấy trường hợp của ai giống như vậy.
Các bác cho hỏi? Muốn đổi số thành chữ tiền (đô la mĩ), như các bác cũng biết tiền đô thì nhiều nước dùng tiền đô, VD: đô Australia (AUD), đô sinagapore (SGD)... Nhưng cái em muốn lại là định danh đô là (USD).
Thường các addins dịch ra như sau:
Ví dụ số: 1,234,567.20
(1) One million two hundred thirty four thousand five hundred sixty seven dollars and twenty cents.
(2) One million two hundred thirty four thousand five hundred sixty seven point twenty.

Như 2 ví dụ trên thì đô la nào cũng có giá trị quy đổi như nhau. => Sai do với trường hợp cụ thể.

Bây giờ em nói cái ý em đang cần là vì em làm bên chứng từ thanh toán ngân hàng cho Công ty xuất nhập khẩu, nên tiền nào phải đúng loại tiền mà hai bên đã thỏa thuận ở trong hợp đồng chứ không phải cứ tiền đô la là được. Cũng ở ví dụ trên em muốn dịch ra như bên dưới.
Say: US dollars one million two hundred thirty four thousand five hundred sixty seven and twenty cents.
Em muốn như sau:
- Bắt đầu bằng các chữ (US dollars) rồi mới bắt đầu dịch ra các con số: one million two hundred thirty four thousand five hundred sixty seven and twenty cents.
- Chỗ phần thập phân như ở trường hợp (1) có chữ dollars, chữ này bỏ đi chỉ lấy lại chữ and thôi.
Cảm ơn các bác đã quan tâm.
 
Lần chỉnh sửa cuối:
Upvote 0
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:
Cú pháp:
Mã:
=DocSo(Number,Code)
Trong đó:
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.
Chào anh, anh giúp em sửa chữ "lẻ" thành chữ "Linh" và bỏ đi dấu "." cuối cùng khi đọc số được không ạ!
 
Upvote 0
Chào anh, anh giúp em sửa chữ "lẻ" thành chữ "Linh" và bỏ đi dấu "." cuối cùng khi đọc số được không ạ!
Bạn thử sửa code lại như sau nhé:
Rich (BB code):
Function DocSo(Number, Font) As String
Dim MyArray, tam
Dim Str As String, Str1 As String
Str = Format(Fix(Abs(Number)), "000000000000000000")
Select Case Font
Case 1
'MyArray = 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 ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "t" & ChrW(7927) & ", ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "", "tr" & ChrW(259) & "m ", "m" & ChrW(432) & ChrW(417) & "i ", "không " & "m" & ChrW(432) & ChrW(417) & "i" & " không ", "không " & "m" & ChrW(432) & ChrW(417) & "i", "l" & ChrW(7867), "m" & ChrW(432) & ChrW(417) & "i" & " không", "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " n" & ChrW(259) & "m", "m" & ChrW(432) & ChrW(417) & "i" & " l" & ChrW(259) & "m", "m" & ChrW(7897) & "t " & "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(7901) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7897) & "t", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7889) & "t", "Âm ", ChrW(273) & ChrW(7891) & "ng ", "và ", "xu ")
MyArray = 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 ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "t" & ChrW(7927) & ", ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "", "tr" & ChrW(259) & "m ", "m" & ChrW(432) & ChrW(417) & "i ", "không " & "m" & ChrW(432) & ChrW(417) & "i" & " không ", "không " & "m" & ChrW(432) & ChrW(417) & "i", "linh", "m" & ChrW(432) & ChrW(417) & "i" & " không", "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " n" & ChrW(259) & "m", "m" & ChrW(432) & ChrW(417) & "i" & " l" & ChrW(259) & "m", "m" & ChrW(7897) & "t " & "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(7901) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7897) & "t", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7889) & "t", "Âm ", ChrW(273) & ChrW(7891) & "ng ", "và ", "xu ")
Case 2
MyArray = Array("khoâng ", "moät ", "hai ", "ba ", "boán ", "naêm ", "saùu ", "baûy ", "taùm ", "chín ", "trieäu, ", "ngaøn, ", "tyû, ", "trieäu, ", "ngaøn, ", "", "traêm ", "möôi ", "khoâng möôi khoâng ", "khoâng möôi", "leû", "möôi khoâng", "möôi", "möôi naêm", "möôi laêm", "moät möôi", "möôøi", "möôi moät", "möôi moát", "AÂm ", "ñoàng ", "vaø ", "xu ")
Case 3
MyArray = Array("kh«ng ", "mét ", "hai ", "ba ", "bèn ", "n¨m ", "s¸u ", "b¶y ", "t¸m ", "chÝn ", "triÖu, ", "ngµn, ", "tû, ", "triÖu, ", "ngµn, ", "", "tr¨m ", "m¬i ", "kh«ng m¬i kh«ng ", "kh«ng m¬i", "lÎ", "m¬i kh«ng", "m¬i", "m¬i n¨m", "m¬i l¨m", "mét m¬i", "mêi", "m¬i mét", "m¬i mèt", "¢m ", "®ång ", "vµ ", "xu ")
End Select
If Number = 0 Then
DocSo = MyArray(0)
Else
DocSo = ""
End If
For I = 1 To Len(Str)
If Left(Str, I) <> 0 And Mid(Str, (Int((I + 2) / 3) - 1) * 3 + 1, 3) <> 0 Then
    DocSo = DocSo & MyArray(Mid(Str, I, 1)) & MyArray(-(9 + I / 3) * (I Mod 3 = 0) - (15 + I Mod 3) * (I Mod 3 <> 0))
ElseIf I = 9 And Mid(Str, 7, 3) = 0 And Left(Str, 6) <> 0 Then
    DocSo = DocSo & MyArray(12)
End If
Next
DocSo = IIf(Number = 0, MyArray(0) & MyArray(30), "") & IIf(Fix(Number) <> 0, DocSo & MyArray(30), "") & IIf(Fix(Number) <> 0 And Fix(Number) <> Number, MyArray(31), "") & IIf(Fix(Number) <> Number, IIf(Abs(Number - Fix(Number)) < 0.1, "", MyArray(Left(Right(Format(Abs(Number), "#.00"), 2), 1)) & MyArray(17)) & MyArray(Right(Format(Number, "#.00"), 1)) & MyArray(32), "")
DocSo = Trim(Replace(Replace(Replace(Replace(Replace(Replace(Replace(DocSo, MyArray(18), MyArray(15)), MyArray(19), MyArray(20)), MyArray(21), MyArray(22)), MyArray(23), MyArray(24)), MyArray(25), MyArray(26)), MyArray(27), MyArray(28)), ", " & MyArray(30), " " & MyArray(30)))
If Number < 0 Then
DocSo = MyArray(29) & DocSo
End If
'DocSo = UCase(Left(DocSo, 1)) & Mid(DocSo, 2) & "."
DocSo = UCase(Left(DocSo, 1)) & Mid(DocSo, 2)
End Function

1573091534332.png
 
Upvote 0
Web KT

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

Back
Top Bottom