Hàm đọc số ra chữ

be09

Member
Hội viên mới
Hàm đọc số ra chữ

Hôm nay tặng các bạn hàm đọc số ra chữ để ứng dụng vào công việc của mình.

Các đặt Code trong Module:

Mở bảng tính, sau đó nhấn Alt+F11 để vào cửa sổ VBE, từ menu vào Insert > Module (nếu chưa có Module nào thì mặc định là Module1).

Tiếp theo click đúp vào Module1 cửa sổ Code hiện ra và đặt Code sau vào cửa sổ Code.

PHP:
Function SoRaChu(ByVal NumCurrency As Currency) As String
If NumCurrency = 0 Then
SoRaChu = "không " & ChrW(273) & "ô" & ChrW(768) & "ng"
Exit Function
End If
If NumCurrency > 922337203685477# Then ' soì loìn nhaìt cua loai tieÌn
SoRaChu = "không " & ChrW(273) & "ô" & ChrW(777) & "i " & _
        ChrW(273) & ChrW(432) & ChrW(417) & ChrW(803) & "c sô" & ChrW(769) & " l " _
         & ChrW(417) & ChrW(769) & "n h" & ChrW(417) & "n " '012,249,443,333,651"
Exit Function
End If
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 = ChrW(273) & "ô" & ChrW(768) & "ng"
DonViLe = "xu"

CharVND(1) = "mô" & ChrW(803) & "t "
CharVND(2) = "hai"
CharVND(3) = "ba"
CharVND(4) = "bô" & ChrW(769) & "n "
CharVND(5) = "n" & ChrW(259) & "m "
CharVND(6) = "sa" & ChrW(769) & "u "
CharVND(7) = "ba" & ChrW(777) & "y "
CharVND(8) = "ta" & ChrW(769) & "m "
CharVND(9) = "chi" & ChrW(769) & "n "

SoLe = Int((NumCurrency - Int(NumCurrency)) * 100)
PhanChan = Trim$(Str$(Int(NumCurrency)))
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 = "không " + DonViTien + " "
I = 5
Else
BangChu = ""
I = 0
End If
While I <= 5
Select Case I
Case 0
SoDoi = NganTy
Ten = "nga" & ChrW(768) & "n ty" & ChrW(777)
Case 1
SoDoi = Ty
Ten = "ty" & ChrW(777)
Case 2
SoDoi = Trieu
Ten = "triê" & ChrW(803) & "u"
Case 3
SoDoi = Ngan
Ten = "ngàn"
Case 4
SoDoi = Dong
Ten = DonViTien
Case 5
SoDoi = SoLe
'Ten = DonViLe
Ten = "le" & ChrW(771)
End Select
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
BangChu = Trim(BangChu) + IIf(Len(BangChu) = 0, "", ", ") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + " tr" & ChrW(259) & "m ", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
BangChu = BangChu + "l? "
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + " m" & ChrW(432) & ChrW(417) & "i ", "m" & ChrW(432) & ChrW(417) & ChrW(768) & "i ")


End If
End If

If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + "l" & ChrW(259) & "m " + Ten + " "
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + "mô" & ChrW(803) & "t " + Ten + " "
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + " " + Ten + " ", Ten + " ")
End If
End If
Else
BangChu = BangChu + IIf(I = 4, DonViTien + " ", "")
End If
I = I + 1
Wend
If SoLe = 0 Then
BangChu = BangChu + "ch" & ChrW(259) & ChrW(777) & "n)"
End If
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
SoRaChu = BangChu
End Function

Bất kỳ Ô cần đọc số ra chữ bạn sử dụng công thức sau:

=SoRaChu(B12)

B12 là tôi ví dụ ô có chứa dữ liệu cần đọc số ra chữ, các bạn có thể thay bằng ô khác.

Lưu ý:

- Nhớ thiết lập chế độ chạy Macro khi sử dụng hàm này.
- Nếu các bạn chưa biết cách thiết lập chế độ chạy Macro thì vào Link sau để tải File hướng dẫn ở bài #1.
- Nếu các bạn không làm được thì yêu cầu tôi sẽ Up File lên sau.
 
Sửa lần cuối:
Ðề: Hàm đọc số ra chữ

bác be09 lại ra thêm 1 chiêu giúp anh em rồi hjhjhj
 
Ðề: Hàm đọc số ra chữ

bác be09 lại ra thêm 1 chiêu giúp anh em rồi hjhjhj

Giúp anh em cho công việc được nhẹ nhàng là trách nhiệm của những người đi trước, còn việc ứng dụng và cố gắng học hỏi cho tốt để giúp đỡ những người đi sau là trách nhiệm của những người đi kế tiếp.
 
Bác bé 09 ơi làm ơn chuyển chữ chẳn thành chẵn cho em được không ak? Trong công thức em không biết sửa chỗ nào.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top