Đọc số tiên trong phiếu xuất kho (2 người xem)

Liên hệ QC

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

tranthanh2200

Thành viên hoạt động
Tham gia
12/1/18
Bài viết
149
Được thích
32
Donate (Momo)
Donate
Giới tính
Nam
Em có dùng 1 đoạn code để đọc số tiền trong excel.
Số: 2030000
Dịch ra là: Hai triệu, ba người ngàn đồng chẵn.
Anh chị cho em hỏi dịch tiền như code là đúng hay sai a. Em đang nghi ngờ kết quả của code.
Bình thường em đọc là: Hai triệu không trăm ba mươi ngàn đồng chẵn.
Xin cảm ơn anh chị a. !
 
Em có dùng 1 đoạn code để đọc số tiền trong excel.
Số: 2030000
Dịch ra là: Hai triệu, ba người ngàn đồng chẵn.
Anh chị cho em hỏi dịch tiền như code là đúng hay sai a. Em đang nghi ngờ kết quả của code.
Bình thường em đọc là: Hai triệu không trăm ba mươi ngàn đồng chẵn.
Xin cảm ơn anh chị a. !
Theo tôi là sai vì nếu code Dịch ra là: Hai triệu, ba người ngàn đồng chẵn.
 
Em có dùng 1 đoạn code để đọc số tiền trong excel.
Số: 2030000
Dịch ra là: Hai triệu, ba người ngàn đồng chẵn.
Anh chị cho em hỏi dịch tiền như code là đúng hay sai a. Em đang nghi ngờ kết quả của code.
Bình thường em đọc là: Hai triệu không trăm ba mươi ngàn đồng chẵn.
Xin cảm ơn anh chị a. !
Code đọc số này trên GPE nhiều lắm. Bạn tìm 1 hàm phù hợp để dùng
 
Hy vọng đúng cái bạn cần, cái này mình đang dùng.

Option Explicit
Function TVND(number) As String
Dim MyArray, S00, i As Integer
Dim str As String, str1 As String
str = Format(Fix(Abs(number)), "000000000000000000")
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 ", "", "")

If Len(str) = 0 Then
TVND = "Không " & ChrW(273) & ChrW(7891) & "ng"
ElseIf Len(str) >= 19 Then
TVND = "S" & ChrW(7889) & " quá l" & ChrW(7899) & "n. Xin vui lòng ki" & ChrW(7875) & "m tra l" & ChrW(7841) & "i! C" & ChrW(7843) & "m " & ChrW(417) & "n"
Else
If number = 0 Then
TVND = MyArray(0)
Else
TVND = ""
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
TVND = TVND & 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
TVND = TVND & MyArray(12)
End If
Next
TVND = IIf(number = 0, MyArray(0) & MyArray(30), "") & IIf(Fix(number) <> 0, TVND & 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), "")
TVND = Trim(Replace(Replace(Replace(Replace(Replace(Replace(Replace(TVND, 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
TVND = MyArray(29) & TVND
End If
TVND = UCase(Left(TVND, 1)) & Mid(TVND, 2) & "."
End If
End Function
 
Cảm ơn các chú và các thành viên đã đọc a. Cảm ơn đoạn code của bạn dinhduy
Bài đã được tự động gộp:

Chúc mọi người có một ngày tươi đẹp, trúng đề chẳng hạn ,:)))
 
Web KT

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

Back
Top Bottom