Chuyển đổi số thành chữ viết bằng Code VBA

17/05/21
1624
0

Thường xuyên xử lý và tính toán dữ liệu với bảng tính Excel, nếu với dữ liệu liên quan đến tiền tệ thì việc muốn đổi số thành chữ sẽ rất nhiều. Các bạn cũng có thể thủ công ngồi nhập chữ từ những con số, nhưng nếu với dữ liệu nhiều và đòi hỏi độ chính xác các bạn không thể ngồi nhập thủ công được.

Chuyển đổi số thành chữ viết bằng Code VBA

Chuyển đổi số thành chữ viết bằng Code VBA chỉ đơn giản với 2 bước thao tác
Chuyển đổi số thành chữ viết bằng Code VBA chỉ đơn giản với 2 bước thao tác

Các bạn có thể sử dụng 1 cách dễ dàng để giúp các bạn đổi số thành chữ một cách nhanh chóng và hiệu quả. Bài viết hướng dẫn cách đổi số thành chữ trong Excel 2010 bằng fucion, với Excel 2007 và Excel 2013 các bạn có thể thao tác tương tự.

Thường xuyên xử lý và tính toán dữ liệu với bảng tính Excel, nếu với dữ liệu liên quan đến tiền tệ thì việc muốn đổi số thành chữ sẽ rất nhiều.Các bạn cũng có thể thủ công ngồi nhập chữ từ những con số, nhưng nếu với dữ liệu nhiều và đòi hỏi độ chính xác các bạn không thể ngồi nhập thủ công được.

Hôm nay tinvanphong 1 cách dễ dàng để giúp các bạn đổi số thành chữ một cách nhanh chóng và hiệu quả.Bài viết hướng dẫn cách đổi số thành chữ trong Excel 2010 bằng fucion, với Excel 2007 và Excel 2013 các bạn có thể thao tác tương tự. với các file khác

Hướng Dẫn :

Bước 1 : Bạn cần phải lưu file dưới dạng xlsm để  khi save lại file vẫn còn lưu code
Bước 2 :  Bạn Cần bật thanh công cụ DEVOLOPER

Chuyển đổi số thành chữ viết bằng Code VBA
Chuyển đổi số thành chữ viết bằng Code VBA

Bước 3 : Tạo 1 Model trong

Chuyển đổi số thành chữ viết bằng Code VBA
Chuyển đổi số thành chữ viết bằng Code VBA

Bước 4 : Coppy toàn bộ CODE fucion phia dưới vào Model đó

'===============================
Function TVP_DocSo(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 TVP_DocSo = "kh" & ChrW(244) & "ng" Else TVP_DocSo = Dau & Trim(docso)
Else
TVP_DocSo = conso
End If
End Function

Bước 5 : bạn tra Worksheet=TVP_DocSO( Chọn con số muốn đọc ) ,

Chúc các bạn thành công

Bình chọn bài viết

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

4 − 2 =