Nhờ góp ý về Đọc số thành chữ có số thập phân dùng hàm

Liên hệ QC

nnt32002

Thành viên hoạt động
Tham gia
10/8/07
Bài viết
165
Được thích
21
Tôi có sưu tầm một công thức dùng hàm về Đọc số thành chữ có số thập phân nhưng vẫn thấy có một số trục trặc nhỏ.
Xin mời anh chị em cùng góp ý để mọi người cùng sử dụng đạt hiệu quả tốt nhất.
 

File đính kèm

@nnt32002 :
1) Có bắt buộc là dùng công thức để đọc số thành chữ không bạn? Có thể dùng code không?
2) Tôi dùng Add-In Acchelper của anh Nguyễn Duy Tuân được kết quả như ảnh dưới.
Bạn nhờ anh Tuân hoặc các thành viên khác chỉnh sửa code lại là được kết quả mong muốn.
sdgdfsgd.PNG
 
Lần chỉnh sửa cuối:
@vanle33
Do mỗi cách dùng của hàm hay code đều có cái tiện dụng riêng của nó. Nên mỗi người tuỳ hoàn cảnh mà lựa chọn để sử dụng. Nay nhận thấy cái công thức này chưa được hoàn chỉnh lắm nên có ý kiến để nếu được tốt hơn thì mọi người dễ đường lựa chọn mà sử dụng.
 
Viết hàm nó rối, dù có biết hàm nhưng đến lúc sửa theo yêu cầu rất là cực
 
@nnt32002 : Túm lại là bạn muốn dùng code để đọc số thành chữ không? Nếu muốn thì đi theo hướng tôi nói ở #2 để làm tiếp.
Sửa công thức 'một mớ bòng bong' như trên thì chắc "chớt".
 
Nếu dùng Add-in AccHelper để đọc số thành chữ với hàm VND thì công thức viết như sau là được nội dung đọc như ý bạn.
=SUBSTITUTE( VND(B3,,"m2"," "), " và ", " chấm ")
(Không cần phải sửa code két gì).

Còn bạn muốn số 2 nhô lên sau "m" thì trong công thức không format được như vậy.
 
@Nguyễn Duy Tuân : Code không thể xuất được ra kết quả: số nhô lên sau 1 ký tự (dạng Superscript) à anh?. Cho nhiều trường hợp chữ hoặc số khác chứ không phải mỗi trường hợp m2.
 
Để vừa đọc số lại vừa format thì cần viết VBA. Mã nguồn trong file đính kèm.

doc_so_va_format.gif

C#:
Sub FormatSuperscript()
    Dim C As Range, P As Long
    Set C = ActiveCell
    If IsNumeric(C.Value) Then
        C.Offset(, 1).Formula = "=SUBSTITUTE(VND(" & C.Address & ",,""m2"","" ""), "" và "", "" cham "")"
        Set C = C.Offset(, 1)
        C.Value = C.Value
        'unicode: chu chaasm"
        C.Value = Replace(C.Value, " cham ", " ch" & ChrW(7845) & "m ")
        'Format Superscript
        P = InStr(C.Value, "2")
        If P > 0 Then
            C.Characters(P, 1).Font.Superscript = True
        End If
    End If
End Sub
 

File đính kèm

Web KT

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

Back
Top Bottom