Add-in: Đổi số sang chữ trong Excel sử dụng font Unicode (1 người xem)

  • Thread starter Thread starter infes
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Nói chung là dùng được nhưng mà có một lỗi nhỏ mà chưa sửa được, Khi mình viết: 123456 thì nó sẽ đọc là một trăm hai mươi ba nghìn, bốn trăm năm mươi sáu nhưng mình muồn đọc như thế mà bỏ dấu , đi nghĩa là một trăm hai mươi ba nghìn bốn trăm năm mươi sáu. Bạn nào biết giúp mình với.
Đang cần gấp, Ai biết giúp tớ nhé.
 
Thôi làm được rồi, mình đã tìm ra lệnh code, cảm ơn các bác.
 
Cho mình hỏi:

Tiện ích này rất hay. Xong làm thế nào khi số đọc không phải là dương số (số âm)?
thank!
 
Hôm qua ngồi nghiên cứu cái Code bạn chủ thớt viết, nó chẳng đọc đúng số dạng như thế này: 123.056.346 Nó không đọc được KHÔNG TRĂM, Bác chủ Topic FIX lại lỗi này cho anh em nhé.
 
thanks các bác nhé rất có ích cho em đây
 
Hôm qua ngồi nghiên cứu cái Code bạn chủ thớt viết, nó chẳng đọc đúng số dạng như thế này: 123.056.346 Nó không đọc được KHÔNG TRĂM, Bác chủ Topic FIX lại lỗi này cho anh em nhé.
Xài tạm add-ins này đi! Có file test đính kèm đó bạn.
 
Sao lại có 'Bằng chữ' và dâu ./. cuối câu làm gì vậy bạn. Hic.
Khi đọc số tiền thì thường có hai chữ "Bằng chữ" ở đầu. Còn cái kết thúc là dấu "./." là do mình muốn nó thế thôi. Không thích thì bạn vào sửa code, bỏ đi là được mà.
 
Khi đọc số tiền thì thường có hai chữ "Bằng chữ" ở đầu. Còn cái kết thúc là dấu "./." là do mình muốn nó thế thôi. Không thích thì bạn vào sửa code, bỏ đi là được mà.
Cái cuối thì không sao, Còn cái đầu thì mình muốn bỏ, vì cty mình có sẵn mẫu rồi, chỉ cần ngang đọc số đi thôi, bạn bỏ giùm mình chữ bằng chữ với được không, mình bỏ được chữ bằng chữ trong code nhưng lại lỗi chữa hoa ở từ thứ 3.
 
Cái cuối thì không sao, Còn cái đầu thì mình muốn bỏ, vì cty mình có sẵn mẫu rồi, chỉ cần ngang đọc số đi thôi, bạn bỏ giùm mình chữ bằng chữ với được không, mình bỏ được chữ bằng chữ trong code nhưng lại lỗi chữa hoa ở từ thứ 3.
Đã sửa! Bạn xem được chưa!
 
chào anh chị
Anh chị chỉ giúp e làm sao cài đượ fần mềm số đổ ra chữ vậy.mình fải cài ở dâu vậy a chi trang nào vậy
 
chào anh chị
Anh chị chỉ giúp e làm sao cài đượ fần mềm số đổ ra chữ vậy.mình fải cài ở dâu vậy a chi trang nào vậy
Chịu khó vọc search các bài trên diễn đàn đi bạn. Cái này viết nhiều quá rồi, viết lại nữa oải quá!
 
Các ban ơi cho minh hoi tai sao khi cai add-in vao w7 thi khi doc lai bi loi phong chu minh dang dung unicode
 
chao ca nha!
ca nha cho minh hoi tai sao khi minh cai doi so thanh chu cho 0ffit 2007 chay tren w7 thi khi doc bi loi phong chu
 
Cho mình hỏi với vì mình search mỏi mắt mà không tìm được cái mình cần, có bản đọc số ra chữ nào mà không đọc số sau dấu phảy không?
Cảm ơn nhiều!
 
mình đã load phần mềm này về dùng thử nhưng mà bị lỗi: vd như 108102đ nó bị lỗi Một trăm leû tám nghìn một trăm leû hai đồng chẵn.
 
Cảm ơn sự hướng dẫn thật chi tiết của tất cả mọi người
 
cảm ơn bạn. chạy tốt trên W7 và office 2010 ...:D:D
 
thử nhé. cái này dễ sử dụng thôi.
 

File đính kèm

bạn xem lại phần chuyển đổi sang USDVN và USD nhé, mình chuyển mà không được. Cảm ơn
 
Em có code hàm số ra chữ bằng tiền việt, sau đó em có sửa ngôn ngữ lại thành các loại ngoại tệ khách như: dollar Úc, Canada, Euro, vàng. nhưng mỗi loại phải cần 1 modelu để chạy. em nhờ các bác viết ngắn gọn hơn chỉ dùng 1 đoạn code mà có thể dùng được các hàm số ra các ngoại tệ và cả tiền việt. (file code đính kèm). nếu được xin các bác giải thích dùm em, vì em mới vọt cái code nên chưa biết nhiều "linh mới hoàn toàn". xin cảm ơn
 

File đính kèm

Cách sử dụng hàm của bạn như thế nào thế?
Mình thấy định đạng của file không phải là add in?
Có thể add in vào excel không?
nó gồm 5 hàm: =sorachu( ); =sorausd ( ); =soraaud( ); = soraeur( ); = sorasjc( )
đúng rồi file này ko định dạng add in, có thể addin được.
 
Mình thấy vẫn còn chữ "chẵn" và không có dấu chấm mà
Sorry nhe chiều mình bận quá sửa rồi mà up ko coi lại,
mình up lại bạn xem đúng ý chưa.

các pro ơi bảng mã chữ (Ỉ) của uni là bao nhiêu vậy, em chỉ tìm được chữ (i) là 69, còn chữ ('i') là 8b, nhưng tìm hòai ko được chữ (ỉ). mong các pro chỉ giáo.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Sorry nhe chiều mình bận quá sửa rồi mà up ko coi lại,
mình up lại bạn xem đúng ý chưa.

các pro ơi bảng mã chữ (Ỉ) của uni là bao nhiêu vậy, em chỉ tìm được chữ (i) là 69, còn chữ ('i') là 8b, nhưng tìm hòai ko được chữ (ỉ). mong các pro chỉ giáo.
Bạn tham khảo nhé:
Ký tự|Mã Dec|Mã Hex
i|105|69
í|237|ED
ì|236|EC
ỉ|7881|1EC9
ĩ|297|129
ị|7883|1ECB
I|73|49
Í|205|CD
Ì|204|CC
Ỉ|7880|1EC8
Ĩ|296|128
Ị|7882|1ECA
Để lấy mã của các ký tự Unicode, bạn dùng hàm AscW trong VBA nhé.
 
Có thể dung lượng file đính kèm của bạn không đủ để up hoăc dung lượng file của bạn lớn hơn giới hạn cho phép? Bạn kiểm tra lại xem
bạn xem lại nhe!

có ai trả lời em bài #124 với
"nhưng mỗi loại phải cần 1 modelu để chạy. em nhờ các bác viết ngắn gọn hơn chỉ dùng 1 đoạn code mà có thể dùng được các hàm số ra các ngoại tệ và cả tiền việt. "
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
bạn xem lại nhe!

có ai trả lời em bài #124 với
"nhưng mỗi loại phải cần 1 modelu để chạy. em nhờ các bác viết ngắn gọn hơn chỉ dùng 1 đoạn code mà có thể dùng được các hàm số ra các ngoại tệ và cả tiền việt. "
1) Bài của bạn là #123 nhé! hiii
2) add in đã đúng ý mình. Nhưng bạn chỉ cho mình chỉnh ngay trong Code để dấu chấm nằm sát cạnh chữ "đồng" chứ không cách ra 1 khoảng trắng như thế?
3) Mình thử với số này 32457058050 ra kết quả thế này "Ba mươi hai tỷ, bốn trăm năm mươi bảy triệu, năm mươi tám ngàn, năm mươi đồng ." Bạn chỉnh Code để nó ra kết quả thế này nhé "Ba mươi hai tỷ, bốn trăm năm mươi bảy triệu, không trăm năm mươi tám ngàn, không trăm năm mươi đồng." nhé! Chỉ thêm hai chữ "không"
Thanks
 
Lần chỉnh sửa cuối:
Mình up lại dấu "chấm" được đưa sát vào, còn đọc thêm số "không" nữa thì cái này nhờ các bác pro chỉnh dùm lại 1 tí. Cảm ơn
 

File đính kèm

hàm của bài #111 là =vnd(), cấu trúc giống như hàm mình gửi, nhưng không dọc số thập phân và không phân cách dấu (,).
Thế không phải là bài mình cần rồi
1) Mình muốn có dấu phảy phân cách phần nghìn
2) Và có chữ "đồng" cuối cùng
3) Và có 1 dấu chấm sát cạnh chữ "đồng"
 
Thế không phải là bài mình cần rồi
1) Mình muốn có dấu phảy phân cách phần nghìn
2) Và có chữ "đồng" cuối cùng
3) Và có 1 dấu chấm sát cạnh chữ "đồng"
Mình nghĩ code này không quá khó đâu! Bạn có thể tự tìm hiểu được mà. Khi mình chưa biết gì về VBA, đoạn code VBA đầu tiên mình tiếp xúc chính là hàm đọc số này, trong 1 ngày tìm hiểu mình đã sửa được code theo ý mình. Hãy chủ động thay vì chờ đợi bạn ạ.
 
Lần chỉnh sửa cuối:
Mình hỏi thêm . Đây là Code?
Nhưng có thể add in vào excel không ?
Vì mình thấy định đạng file này không phải là file add in. Các bạn có cách nào chuyển thành file add in để add vào excel không?

Bạn xem file hướng dẫn addin đính kèm nhé!
đây là file hướng dẫn mình vọt, được search trên web mình quên tên tác giả, xin cảm ơn tác giả đã viết. mình ko biết rành về code, nhưng tìm hiều trên GPE rồi đưa bảng mã vào thì thực hiện
nếu thực hiện được xin cho 1 lần cảm ơn.
 

File đính kèm

Các bác ơi, mình đã tải được Doiso.xla rồi nhưng chưa biết cách cài đặt nơi, máy nình cài win2010, Bác nào biết chỉ giúp mình với nhé_thanks nhiều nhiều
 
Anh ơi nếu muốn dùng code này thì em phải copy đoạn này vào phần nào anh có thể hướng dẫn em được không ạh. Em cảm ơn nhiều

Đây là hàm đổi số ra chữ cho 3 bảng mã :
Unicode: hàm DocSoUni
Vni Window: hàm DocSoVni
TCVN3 ABC: hàm DocSoAbc
Các bạn có thể tải tập tin DocsoVn.zip có sẳn 3 hàm trên.

Mã:
'=====================
Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
  DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "aâm " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
      Else
        s1 = s09(n1) & " traêm"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " laêm"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
  DocSoVni = conso
End If
End Function
'==================================
Function DocSoAbc(conso) As String
s09 = Array("", " mét", " hai", " ba", " bèn", " n¨m", " s¸u", " b¶y", " t¸m", " chÝn")
lop3 = Array("", " triÖu", " ngh×n", " tû", " triÖu", " ngh×n", "")
If Trim(conso) = "" Then
  DocSoAbc = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "©m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh«ng tr¨m"
      Else
        s1 = s09(n1) & " tr¨m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m­êi" Else s2 = s09(n2) & " m­¬i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " mét" Else s3 = " mèt"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l¨m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoAbc = "kh«ng" Else DocSoAbc = dau & Trim(docso)
Else
  DocSoAbc = conso
End If
End Function
'===============================
Function DocSoUni(conso) As String
s09 = Array("", " m" & ChrW(7897) & "t", " hai", " ba", " b"  & ChrW(7889) & "n", " n" & ChrW(259) & "m", " s" &  ChrW(225) & "u", " b" & ChrW(7843) & "y", " t" &  ChrW(225) & "m", " ch" & ChrW(237) & "n")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
If Trim(conso) = "" Then
  DocSoUni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
      Else
        s1 = s09(n1) & " tr" & ChrW(259) & "m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) &  "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) &  "i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l" & ChrW(259) & "m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso)
Else
  DocSoUni = conso
End If
End Function
 
Các bạn ơi, mình làm lương có số lẻ đằng sau ex: 15.000.000,25...
Trong bảng lương mình chỉ lấy đến 15.000.000 thôi, nhưng khi đưa =vnd(số) trên thì đọc là Mười lăm triệu, hai lăm xu.. Giúp mình với, làm sao bỏ được cái đoạn xu..., không đọc phần lẻ nữa. Cảm ơn cả nhà nhá.
 
Các bạn ơi, mình làm lương có số lẻ đằng sau ex: 15.000.000,25...
Trong bảng lương mình chỉ lấy đến 15.000.000 thôi, nhưng khi đưa =vnd(số) trên thì đọc là Mười lăm triệu, hai lăm xu.. Giúp mình với, làm sao bỏ được cái đoạn xu..., không đọc phần lẻ nữa. Cảm ơn cả nhà nhá.
Bạn round nó lại
VD: vnd(round(conso,0)) => vnd(round(15.000.000,25,0))
 
Sorry các bạn, post nhầm file đổi số cho VNI
Đây là bản đổi file cho font Unicode

Bạn ơi file của bạn không đọc được số âm
bạn có thể cho thêm dấu phẩy, và dấu chấm cuối câu được không bạn
VD: Âm Hai triệu, năm trăm sáu mươi ngàn, năm trăm đồng chẵn.
 
Mình cài AccHelper vô máy mà không đọc dc (kể cả đọc file help luôn). Tại máy tính chăng ?
 
Muốn đổi số âm thì bạn dùng nối chuỗi là được mà. ví dụ ô có số B1=(100000) đọc số ở ô C1=if(B1<0,"Âm ","")& vnd(abs(B1))
bạn thử xem đã được chưa.
 
Cám ơn Thành viên đã chia sẻ cho file hữu ích. Nhưng tác giả có thể chỉnh sửa giùm như sau: cắt chữ "chẵn" ở cuối, vì tiền Việt Nam chỉ tính đến đơn vị đồng, được ko. Thanks
 
Trước hết cám ơn bạn đã chia sẻ công cụ bổ ích. Nhưng kết quả dòng tiền viết bằng chữ mình muốn bỏ chữ "chẵn" vì đơn vị đã tính là đồng. Như vậy phải thao tác chỉnh sửa như thế nào. mong Huynh chỉ giáo. Cám ơn nhiều.
 
Thank ! Tôi thấy tiện ích này rất tuyệt. Nếu ta sử dụng tiện ích này sẽ không bị nhầm lẫn khi ta phải gõ "bằng cữ" từ bàn phím !.
 
Mình dung win7 office 3 mình không biết cài kiểu gì các bạn giúp mình với
 
Minh muốn sửa một chút tiện ích đổi số sang chữ (đọc số tiền) của thầy Phạm Duy Long cho tiện như sau:
Bỏ chữ tổng số tiền và (nhóm ngàn) vậy thôi và nghìn chuyển sang ngàn cho hay vì trót thích dùng rồi
Ai biết giúp với
Cám ơn
 
Cho tôi hỏi đây là lỗi gì ?

Mặc dù tôi không chuyển file .xla đi đâu hết ?
 
BKAV xem macro của Excel là virus nên xóa tất cả các lệnh đã viết. Phải add-in lại lừ bản chưa bị BKAV để mắt tới.

Cho mình hỏi tí: Mình muốn sử dụng hàm đọc số thành chữ nhưng không sử dụng phần add-in được không? Có cách nào mình chuyển sang macro để khi mở file excel la chay được ko ah. Anh Long giúp em tí nhé.
 
Cho mình hỏi tí: Mình muốn sử dụng hàm đọc số thành chữ nhưng không sử dụng phần add-in được không? Có cách nào mình chuyển sang macro để khi mở file excel la chay được ko ah. Anh Long giúp em tí nhé.
Bạn tạo một Modul trong chính file excel đó, rồi copy toàn bộ code của hàm đọc số vào modul.
 
Cho mình hỏi làm sao đổi chữ " Ngàn" thành chữ " Nghìn" vậy các bạn !
 
Mình sử dụng Windows8, Office 2010. Cài tất cả mấy file của các bạn ở trên thì máy tính báo là mất VBA và trình điều khiển Active. Rất mong các bạn chỉ giúp. Tks!
 
Cụ thể máy tính báo: "Sổ làm việc này đã đánh mất dự án VBA, các điều khiển ActiveX và bất kỳ tính năng liên quan nào khác-có thể lập trình của nó." Các bạn giúp mình với!
 
Mình muốn thêm '' Bằng chữ '' vào đầu hàng chữ thì thêm thế nào hả bạn?
 
vấn đề là mình cần sửa luôn trong hàm chứ bạn
 
chào bạn. lúc đầu mình sử dụng đổi số bình thường, nhưng vài ngày sau nó chỉ đọc số, còn chữ "đồng chẵn" thì không còn nữa, cho mình hỏi bị lỗi gì và cách khác phục với.
mình vào C:\......\microsoft\AddIns xóa file Doiso.xla nhưng khi vào excel vẫn dùng hàm =vnd() được???
 
chào bạn. lúc đầu mình sử dụng đổi số bình thường, nhưng vài ngày sau nó chỉ đọc số, còn chữ "đồng chẵn" thì không còn nữa, cho mình hỏi bị lỗi gì và cách khác phục với.
mình vào C:\......\microsoft\AddIns xóa file Doiso.xla nhưng khi vào excel vẫn dùng hàm =vnd() được???
Có thể hàm vnd() đã được đính ngay trong file rồi! View code xem có không bạn!
 
Sơn dùng vnd() đã thành công, chia sẻ các bạn. mình ví dụ tại ô C181
1.114.371.541
công thức như sau:
="(Bằng chữ: "&LEFT(vnd(C181);LEN(vnd(C181))-1)&" đồng chẵn.)"
 
Lần chỉnh sửa cuối:
Addin

Mình cài được rồi nhưng sao khi dùng hàm đọc thành chữ thì chữ toàn bị lỗi phông thôi Ad ơi??? Mình thử cả các hàm khác mà các bạn gợi ý rồi nhưng cũng lỗi như thế, phải sửa thế nào mới đúng ạ?
 
Mình cài được rồi nhưng sao khi dùng hàm đọc thành chữ thì chữ toàn bị lỗi phông thôi Ad ơi??? Mình thử cả các hàm khác mà các bạn gợi ý rồi nhưng cũng lỗi như thế, phải sửa thế nào mới đúng ạ?
Bạn chọn font Times New Roman chưa?
 
Mình có cái file in hóa đơn nhưng k xài được đổi số sang chữ, nhờ bạn giúp mình với. Do file ecxel quá lớn nên mình k thể đính kèm lên được. Bạn nào có thể giúp được thì cho mình xin dc mail để mình gửi file qua.
Rất mong được giúp đỡ.
 
Lần chỉnh sửa cuối:
Bạn ơi!sao mình làm đúng các bước như trên mà không được.huhu
 
Bạn ơi, tình hình là có lỗi rồi, vì số nào đọc ra cũng có chữ " Chẵn" ở cuối, kể cả số lẻ, chỉ nên dùng chữ " chẵn" trong trường dãy có có 3 số 0 ở cuối mới đúng, hoặc khỏi dùng cũng dc, bạn xem lại nhé
 
Bạn ơi, tình hình là có lỗi rồi, vì số nào đọc ra cũng có chữ " Chẵn" ở cuối, kể cả số lẻ, chỉ nên dùng chữ " chẵn" trong trường dãy có có 3 số 0 ở cuối mới đúng, hoặc khỏi dùng cũng dc, bạn xem lại nhé
Bạn hãy chỉnh như của mình và ra kết quả như hình sau
 
Sorry hoi cau nay ngạiquá, bạn vào Accounting helper options o cho nao mình tìm ko được nhỉ
 
Sorry hoi cau nay ngạiquá, bạn vào Accounting helper options o cho nao mình tìm ko được nhỉ
Bạn tải file ở bài #1 chưa? (nhớ tải bản mới nhất)
Sau khi tải về và giải nén ra sẽ có thư mục Acchelper. Trong đó bạn sẽ thấy file Acchelper Options.
 
Mình thấy add đọc số này rất hay. Nhưng qua sử dụng bác nào sửa hộ mình nhiều lúc đọc số 5 thành "năm" và "lăm". Sửa hộ e thành "năm" với
 
Mình thấy add đọc số này rất hay. Nhưng qua sử dụng bác nào sửa hộ mình nhiều lúc đọc số 5 thành "năm" và "lăm". Sửa hộ e thành "năm" với
Bạn xem topic này để biết cách đọc số 5 http://www.giaiphapexcel.com/forum/showthread.php?43182-Khi-vi%E1%BA%BFt-s%E1%BB%91-th%C3%A0nh-ch%E1%BB%AF-s%E1%BB%91-5-kh%C3%B4ng-ph%C3%A2n-bi%E1%BB%87t-%C4%91%C6%B0%E1%BB%A3c-d%C3%B9ng-t%E1%BB%AB-n%C4%83m-hay-l%C4%83m
Mình nghĩ bạn nên dung add in này thì chuẩn nhất
http://www.giaiphapexcel.com/forum/...-độ-nhanh-tối-đa-nhanh-hơn-80-các-Addins-khác
 
Cho mình hỏi. Mình đang sử dụng window 8, excel 2010 vậy cách đổi số sang chữ mình làm như thế nào? Hướng dẫn mình với. Thanks bạn nhiều
 
Cho mình hỏi. Mình đang sử dụng window 8, excel 2010 vậy cách đổi số sang chữ mình làm như thế nào? Hướng dẫn mình với. Thanks bạn nhiều
Bạn tự học trên diễn đàn, có rất nhiều hướng dẫn.
Một ví dụ là bạn xem bài của mình ở ngay trên (bài #181)!
 
Từ phần nghìn chuyển qua thành triệu thì làm như thế nào?

Đây là hàm đổi số ra chữ cho 3 bảng mã :
Unicode: hàm DocSoUni
Vni Window: hàm DocSoVni
TCVN3 ABC: hàm DocSoAbc
Các bạn có thể tải tập tin DocsoVn.zip có sẳn 3 hàm trên.

Mã:
'=====================
Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
  DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "aâm " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
      Else
        s1 = s09(n1) & " traêm"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " laêm"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
  DocSoVni = conso
End If
End Function
'==================================
Function DocSoAbc(conso) As String
s09 = Array("", " mét", " hai", " ba", " bèn", " n¨m", " s¸u", " b¶y", " t¸m", " chÝn")
lop3 = Array("", " triÖu", " ngh×n", " tû", " triÖu", " ngh×n", "")
If Trim(conso) = "" Then
  DocSoAbc = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "©m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh«ng tr¨m"
      Else
        s1 = s09(n1) & " tr¨m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m­êi" Else s2 = s09(n2) & " m­¬i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " mét" Else s3 = " mèt"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l¨m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoAbc = "kh«ng" Else DocSoAbc = dau & Trim(docso)
Else
  DocSoAbc = conso
End If
End Function
'===============================
Function DocSoUni(conso) As String
s09 = Array("", " m" & ChrW(7897) & "t", " hai", " ba", " b"  & ChrW(7889) & "n", " n" & ChrW(259) & "m", " s" &  ChrW(225) & "u", " b" & ChrW(7843) & "y", " t" &  ChrW(225) & "m", " ch" & ChrW(237) & "n")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
If Trim(conso) = "" Then
  DocSoUni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
      Else
        s1 = s09(n1) & " tr" & ChrW(259) & "m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) &  "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) &  "i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l" & ChrW(259) & "m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso)
Else
  DocSoUni = conso
End If
End Function

Mình có thắc mắc là:
mình toàn đánh số nghìn nhưng toàn lập trình là Increase ra thành triệu (VD: 1.000 -> 1.000.000) cả nên khi dùng hàm này nó chỉ nhận là nghìn thôi (vẫn 1.000)
Vậy phải làm thế nào?
Các pác giúp mình với!
Thanks,
 
Mình có thắc mắc là:
mình toàn đánh số nghìn nhưng toàn lập trình là Increase ra thành triệu (VD: 1.000 -> 1.000.000) cả nên khi dùng hàm này nó chỉ nhận là nghìn thôi (vẫn 1.000)
Vậy phải làm thế nào?
Các pác giúp mình với!
Thanks,
Không hiểu bạn muốn giúp gì?
Bạn đánh 1.000 thì đọc số ra chữ là Một nghìn đồng
Bạn đánh số 1.000.000 thì đọc số ra chữ là Một triệu đồng.
Không hiểu bạn muốn nhập số bao nhiêu?
 
Không hiểu bạn muốn giúp gì?
Bạn đánh 1.000 thì đọc số ra chữ là Một nghìn đồng
Bạn đánh số 1.000.000 thì đọc số ra chữ là Một triệu đồng.
Không hiểu bạn muốn nhập số bao nhiêu?
Ý của bạn ấy là đổi đơn vị thành "nghìn đồng" thay vì "đồng" như hiện tại!
VD: Khi đánh số 1.232 thì nó sẽ đọc là "Một triệu hai trăm ba mươi hai nghìn đồng". Cái này dễ ợt ý mà, thêm chữ "nghìn" vào trước chữ "đồng" trong tên đơn vị là xong!!
 
Chào mọi người,


Sao mình đã làm như vây rồi nhưng vẫn báo #NAME? vậy mọi người. Tks
 
Chào mọi người,


Sao mình đã làm như vây rồi nhưng vẫn báo #NAME? vậy mọi người. Tks
Chắc bạn chưa biết cách thêm add in vào excel rồi nên excel báo lỗi không hiểu hàm đó (#NAME).
Bạn tìm trên trên diễn đàn "cách thêm add in vào excel".
 
Đây là hàm đổi số ra chữ cho 3 bảng mã :
Unicode: hàm DocSoUni
Vni Window: hàm DocSoVni
TCVN3 ABC: hàm DocSoAbc
Các bạn có thể tải tập tin DocsoVn.zip có sẳn 3 hàm trên.

Mã:
'=====================
Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
  DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "aâm " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
      Else
        s1 = s09(n1) & " traêm"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " laêm"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
  DocSoVni = conso
End If
End Function
'==================================
Function DocSoAbc(conso) As String
s09 = Array("", " mét", " hai", " ba", " bèn", " n¨m", " s¸u", " b¶y", " t¸m", " chÝn")
lop3 = Array("", " triÖu", " ngh×n", " tû", " triÖu", " ngh×n", "")
If Trim(conso) = "" Then
  DocSoAbc = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "©m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh«ng tr¨m"
      Else
        s1 = s09(n1) & " tr¨m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m­êi" Else s2 = s09(n2) & " m­¬i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " mét" Else s3 = " mèt"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l¨m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoAbc = "kh«ng" Else DocSoAbc = dau & Trim(docso)
Else
  DocSoAbc = conso
End If
End Function
'===============================
Function DocSoUni(conso) As String
s09 = Array("", " m" & ChrW(7897) & "t", " hai", " ba", " b"  & ChrW(7889) & "n", " n" & ChrW(259) & "m", " s" &  ChrW(225) & "u", " b" & ChrW(7843) & "y", " t" &  ChrW(225) & "m", " ch" & ChrW(237) & "n")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
If Trim(conso) = "" Then
  DocSoUni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
      Else
        s1 = s09(n1) & " tr" & ChrW(259) & "m"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) &  "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) &  "i"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " l" & ChrW(259) & "m"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso)
Else
  DocSoUni = conso
End If
End Function
Cái này muốn phát triển lên thành đọc số tiền thì làm thế nào ạh... như kiểu hàm VND, USD ... giống addin đọc số tiền của Thày Nguyễn Duy Tuân...
 
Cái này muốn phát triển lên thành đọc số tiền thì làm thế nào ạh... như kiểu hàm VND, USD ... giống addin đọc số tiền của Thày Nguyễn Duy Tuân...
Ngay ở bài đó đã có hướng dẫn sử dung rồi
Đó là
Đây là hàm đổi số ra chữ cho 3 bảng mã :
Unicode: hàm DocSoUni
Vni Window: hàm DocSoVni
TCVN3 ABC: hàm DocSoAbc
Bạn Insert/Module rồi copy code trên vào rồi dùng 1 trong 3 cách đọc trên.
 
Ngay ở bài đó đã có hướng dẫn sử dung rồi
Đó là
Đây là hàm đổi số ra chữ cho 3 bảng mã :
Unicode: hàm DocSoUni
Vni Window: hàm DocSoVni
TCVN3 ABC: hàm DocSoAbc
Bạn Insert/Module rồi copy code trên vào rồi dùng 1 trong 3 cách đọc trên.
Cảm ơn a... nhưng ý mình ở đây là đọc ra số tiền.. vd: 12,500 => mười hai nghìn năm trăm đồng...
Còn code trên mới chỉ là đọc ra thành chữ thôi, chưa có tiền tệ...
 
Cảm ơn a... nhưng ý mình ở đây là đọc ra số tiền.. vd: 12,500 => mười hai nghìn năm trăm đồng...
Còn code trên mới chỉ là đọc ra thành chữ thôi, chưa có tiền tệ...

Trời má ơi!
Có mỗi chữ "Đồng" thôi, bạn tự thêm vào hổng lẽ cũng không làm được sao?
 
Cảm ơn a... nhưng ý mình ở đây là đọc ra số tiền.. vd: 12,500 => mười hai nghìn năm trăm đồng...
Còn code trên mới chỉ là đọc ra thành chữ thôi, chưa có tiền tệ...
Mình chưa test thử code trên, có phải bạn thấy code trên đọc đúng số tiền ra chữ rồi ah?
Nếu muốn thêm tiền tệ vào thì
=DocSoUni(A1)&" đồng"
 
Mình chưa test thử code trên, có phải bạn thấy code trên đọc đúng số tiền ra chữ rồi ah?
Nếu muốn thêm tiền tệ vào thì
=DocSoUni(A1)&" đồng"
Cảm ơn bạn nhiều, mình đã làm thế này rồi... nhưng ở đây là muốn một code tổng hợp hơn
Như đọc VND,USD... rồi còn đọc các số thập phân nữa.
Nói chung là muốn xin cái code như kiểu addin acchelper, mã nguồn jo cũng mở hết rồi, nhưng căn bản ko biết j về lập trình nên ko biết view code của các addin đó như thế nào
 
Trời má ơi!
Có mỗi chữ "Đồng" thôi, bạn tự thêm vào hổng lẽ cũng không làm được sao?
Dạ, e thêm thì thêm được nhưng mà e muốn xin code đọc số tiền bằng chữ ý ạh, để e nhúng trực tiếp vào VBA, khỏi cần addin nữa
 
oai... có lẽ các cao thủ ko hiểu ý em do em diễn đạt hơi kém, hjk
Ý em ở đây là e muốn xin code ĐỌC SỐ TIỀN BẰNG CHỮ, còn code copy của thày Phạm Duy Long là mới chỉ đọc ra số thôi, còn đơn vị tiền tệ nữa (mà ko phải thêm thủ công chữ "đồng" hoặc "đôla"... vào)
 
Cảm ơn bạn nhiều, mình đã làm thế này rồi... nhưng ở đây là muốn một code tổng hợp hơn
Như đọc VND,USD... rồi còn đọc các số thập phân nữa.
Nói chung là muốn xin cái code như kiểu addin acchelper, mã nguồn jo cũng mở hết rồi, nhưng căn bản ko biết j về lập trình nên ko biết view code của các addin đó như thế nào
Mình cho bạn thấy code của add in của a Tuân đây

Option Explicit
'Author : Nguyen Duy Tuan
'E.Mail : tuanktcdcn@yahoo.com
'Tel : 0904.210.337
'Website: www.bluesofts.net


#If VBA7 Then
'Declare PtrSafe Sub...
Declare PtrSafe Function VNDW Lib "AccHelper.xll" Alias "VND" (ByVal Amount As Currency, _
Optional ByVal OutputType As Integer = 3, _
Optional ByVal Unit1 As Variant = "", _
Optional ByVal Unit2 As Variant = "", _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant
'OutputType = 1 => TCVN3(ABC)
'OutputType = 2 => VNI
'OutputType = 3 => UNICODE (Ngam dinh)


Declare PtrSafe Function USDW Lib "AccHelper.xll" Alias "USD" (ByVal Amount As Currency, _
Optional ByVal Unit1 As Variant = vbNullString, _
Optional ByVal Unit2 As Variant = vbNullString, _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant


Declare PtrSafe Function Num2StrW Lib "AccHelper.xll" Alias "Num2Str" (ByVal Amount As Currency, _
Optional ByVal LangType As Integer = 2, _
Optional ByVal Unit1 As Variant = vbNullString, _
Optional ByVal Unit2 As Variant = vbNullString, _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant


'LangType = 1 => Viet Nam
'LangType = 2 => English


Declare PtrSafe Function ToUNC Lib "AccHelper.xll" Alias "UNC" (ByVal Text As Variant, _
Optional ByVal InputType As Integer = 1) As Variant
'InputType = 1 TCVN3>>UNICODE (ngam dinh)
'InputType = 2 VNI>>UNICODE


#Else


Declare Function VNDW Lib "AccHelper.xll" Alias "VND" (ByVal Amount As Currency, _
Optional ByVal OutputType As Integer = 3, _
Optional ByVal Unit1 As Variant = vbNullString, _
Optional ByVal Unit2 As Variant = vbNullString, _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant
'OutputType = 1 => TCVN3(ABC)
'OutputType = 2 => VNI
'OutputType = 3 => UNICODE (Ngam dinh)


Declare Function USDW Lib "AccHelper.xll" Alias "USD" (ByVal Amount As Currency, _
Optional ByVal Unit1 As Variant = vbNullString, _
Optional ByVal Unit2 As Variant = vbNullString, _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant


Declare Function Num2StrW Lib "AccHelper.xll" Alias "Num2Str" (ByVal Amount As Currency, _
Optional ByVal LangType As Integer = 2, _
Optional ByVal Unit1 As Variant = vbNullString, _
Optional ByVal Unit2 As Variant = vbNullString, _
Optional ByVal MUnit2 As Long = 1, _
Optional ByVal HasGroupingSymbol As Boolean = False) As Variant


'LangType = 1 => Viet Nam
'LangType = 2 => English


Declare Function ToUNC Lib "AccHelper.xll" Alias "UNC" (ByVal Text As Variant, _
Optional ByVal InputType As Integer = 1) As Variant
'InputType = 1 TCVN3>>UNICODE (ngam dinh)
'InputType = 2 VNI>>UNICODE


#End If


Sub Test()
Dim s As String
s = VNDW(102300, 1, "U1", "U2", 1, True)
Debug.Print s
End Sub
 
Function VND(baonhieu)
'Tien Viet tieng Viet Font Unicode
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim I, J, ViTri As Byte, S As Double
Dim Hang, Doc, Dem
If Trim(baonhieu) = "" Then
VND = ""
Exit Function
ElseIf baonhieu = 0 Then
VND = "kh" & ChrW(244) & "ng"
Exit Function
ElseIf IsDate(baonhieu) Then
ngay = Day(baonhieu)
Thang = Month(baonhieu)
Nam = Year(baonhieu)
VND = "ng" & ChrW(224) & "y " & ngay & " th" & ChrW(225) & "ng " & Thang & " n" & ChrW(462) & "m " & Nam
Exit Function
ElseIf IsNumeric(baonhieu) = True Then
'---------------------------------------------------------------------------------------------------------------------------------
'If baonhieu = 0 Then
'KetQua = "Kh" & ChrW$(244) & "ng " & ChrW$(273) & ChrW$(7891) & "ng"
'Else
'---------------------------------------------------------------------------------------------------------------------------------
If Abs(baonhieu) >= 1E+15 Then
KetQua = "S" & ChrW$(7889) & " qu" & ChrW$(225) & " l" & ChrW$(7899) & "n - H" & ChrW$(224) & "m " & ChrW$(273) & ChrW$(7893) & "i s" & ChrW$(7889) & " ra ch" & ChrW$(7919) & " Vi" & ChrW$(7879) & "t Nam; font ch" & ChrW$(7919) & " Tahoma - Copyright by VoTuanKiet of AMG (0938 73 73 93)"
Else
If baonhieu < 0 Then
KetQua = ChrW$(194) & "m" & Space(1)
Else
KetQua = Space(0)
End If
SoTien = Format(Abs(baonhieu), "##############0.00")
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", "tr" & ChrW$(259) & "m", "m" & ChrW$(432) & ChrW$(417) & "i", "g" & ChrW$(236) & " " & ChrW$(273) & "ã")
Doc = Array("None", "ng" & ChrW$(224) & "n t" & ChrW$(7927), "t" & ChrW$(7927), "tri" & ChrW$(7879) & "u", "ng" & ChrW$(224) & "n", ChrW$(273) & ChrW$(7891) & "ng", "")
Dem = Array("None", "m" & ChrW$(7897) & "t", "hai", "ba", "b" & ChrW$(7889) & "n", "n" & ChrW$(259) & "m", "s" & ChrW$(225) & "u", "b" & ChrW$(7849) & "y", "t" & ChrW$(225) & "m", "ch" & ChrW$(237) & "n")
For I = 1 To 6
Nhom = Mid(SoTien, I * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If I = 5 Then
Chu = ChrW$(273) & ChrW$(7891) & "ng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00"
Chu = "ch" & ChrW$(7861) & "n"
Case Else
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(I)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(Nhom, J, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 4) Then
Dich = "l" & ChrW$(7867) & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
ViTri = InStr(1, Chu, "m" & ChrW$(432) & ChrW$(417) & "i m" & ChrW$(7897) & "t", 1)
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "m" & ChrW$(432) & ChrW$(417) & "i m" & ChrW$(7889) & "t"
KetQua = KetQua & Chu
End If
Next I
End If
End If
VND = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function
Đây là code đọc số tiền bằng chữ của Hoàng Tử Cadafi, giờ e muốn thay vì đọc "đồng" thì đọc là "đô la Mỹ và ... cent" thì thay thế ở vị trí nào ạh ???
P/S: nhìn font của code thì choáng váng...ko biết thay thế ở đâu cho hợp lý +-+-+-+
 
ai gặp lỗi này rồi xin chỉ mình với, ở công ty có sẵn 1 file đọc số tiền như thế này rồi, file mở lên không hiển thị đc đọc số tiền ra tiếng anh, trong khi đọc tiếng việt thì vẫn bình thường, qua sheet mới cũng không đc, nhưng tạo 1 file excel mới thì đọc usd bình thường, copy từ file mới này qua file cũ thì nó hiển thị, copy và dán vào nơi cần đọc và sửa lại ô cần đọc thì nó không hiện ra format dạng như "=usd(A1)" mà lại là "='userfuntion.xla'!usd(A1)" . Vậy tình trạng này là lỗi gì và có cách nào khắc phục không ???
 

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

Back
Top Bottom