SVLAW.7FORUM.BIZ 2014
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
SVLAW.7FORUM.BIZ 2014

Thế giới ngày mai thuộc về những người có tầm nhìn hôm nay - ROBERT SCHULLER

Đăng Nhập

Quên mật khẩu



FAVORITES

Hàm chuyển số sang chữ trong Excel Cash_register Đăng ký
Hàm chuyển số sang chữ trong Excel Menu-home Home
Hàm chuyển số sang chữ trong Excel Menu-community Forum

APPS

Hàm chuyển số sang chữ trong Excel Menu-newcontent Xem nội dung mới
Hàm chuyển số sang chữ trong Excel Menu-quicknavigation Hộp thư

MORE

Hàm chuyển số sang chữ trong Excel Menu-more Lý lịch
Hàm chuyển số sang chữ trong Excel Menu-reglas Trợ giúp
Hàm chuyển số sang chữ trong Excel Likes_flag Ban quản trị

OTHERS

Hàm chuyển số sang chữ trong Excel Date Lịch
Hàm chuyển số sang chữ trong Excel Cake Thống kê

Latest topics

» TỔNG HỢP TIẾNG ANH CHUYÊN NGÀNH LUẬT
by tdung67 Wed Mar 22, 2017 2:57 pm

» ĐỀ THI TRÁCH NHIỆM DÂN SỰ NGOÀI HỢP ĐỒNG (ĐỀ 2)
by tdung67 Mon May 30, 2016 9:24 am

» [HOT] 400 CÂU TRẮC NGHIỆM KIẾN THỨC NGÂN HÀNG (CÓ ĐÁP ÁN THAM KHẢO)
by duyenvinh Wed Mar 09, 2016 10:03 am

» Phương pháp học tiếng anh mới nhất
by thanhnam9187 Thu Mar 03, 2016 8:52 am

» Quản lí nhà nước về hộ tịch
by minhthuc Mon Feb 29, 2016 3:13 pm

» Anh chị nào học luật ngân sách nhà nước rồi có thể hướng dẫn em làm bài tập bên dưới được không ạ? e cảm ơn nhiều ạ :x :x :x
by hihu2016 Sun Feb 28, 2016 8:34 pm

» Tổng hợp đề thi Luật TMQT
by HoaiNam90 Tue Feb 16, 2016 4:52 pm

» Đề thi Công pháp quốc tế
by HoaiNam90 Tue Feb 16, 2016 4:51 pm

» Đề thi Luật Thương Mại
by HoaiNam90 Tue Feb 16, 2016 4:50 pm

» Trang web tổng hợp đề thi trường Luật
by HoaiNam90 Tue Feb 16, 2016 4:48 pm


You are not connected. Please login or register

Hàm chuyển số sang chữ trong Excel

Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

jodiescao

jodiescao
Member
Member

Đối với những người thường xuyên phải sử dụng Excel vào trong công việc tính toán, báo cáo hay thống kê thì việc chuyển số tiền thành chữ là công việc tốn khá nhiều thời gian do phải làm thủ công và thường phải làm lặp đi lặp lại. Hiểu được những khó khăn này, đã có nhiều tiện ích (Add-ins) được viết để hỗ trợ việc chuyển số sang chữ, những tiện ích này đã hỗ trợ người dùng làm việc hiệu quả hơn, rút ngắn thời gian làm việc.

Những tiện ích này được phát triển bởi một nhóm lập trình hay một công ty nào đó, những tiện ích này đều đã được biên dịch nên người sử dụng không thể xem được Code hay chỉnh sửa lại theo ý muốn. Vậy bạn có muốn viết riêng 1 hàm chuyển đổi số sang chữ cho riêng mình không? Và viết ngay trên phần mềm Excel quen thuộc mình vẫn hàng ngày làm việc. Hôm nay Tin học văn phòng sẽ hướng dẫn các bạn viết hàm chuyển số sang chữ và hàm này sẽ được sử dụng như các hàm thông dụng trong Excel như: SUM, AVERAGE, COUT, IF…

1. Khởi động Microsoft Excel
2. Đổi tên 1 Sheet bất kỳ thành Chuso
Do việc nhập các ký tự tiếng việt tại màn hình soạn thảo Code bị lỗi, nên Sheet này có nhiệm vụ chứa toàn bộ các ký tự phục vụ việc chuyển số sang chữ. Với việc những chữ số không cần đưa trực tiếp vào Code mà được để trong Sheet, người sử dụng có thể dễ dàng thay đổi các mã font như: Unicode, VNI, TCVN3 tùy theo thói quen của từng người. Sau khi nhập toàn bộ dữ liệu, Sheet Chuso sẽ có thông tin như phía dưới.


3. Nhấn ALT + F11 để bắt đầu Visual Basic Editor
Vào menu Inser\Module


4. Nhập toàn bộ đoạn mã sau vào
Function ReadNumber(ByVal MyNumber)
Dim VND_Dong, VND_Xu, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String

'Tham chieu den cac o trong Sheet Chuso de lay gia tri
Place(2) = ActiveWorkbook.Sheets("Chuso").Range("D2").Value
Place(3) = ActiveWorkbook.Sheets("Chuso").Range("D3").Value
Place(4) = ActiveWorkbook.Sheets("Chuso").Range("D4").Value
Place(5) = ActiveWorkbook.Sheets("Chuso").Range("D5").Value

MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")

If DecimalPlace > 0 Then
VND_Xu = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then VND_Dong = Temp & Place(Count) & VND_Dong
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case VND_Dong
Case ""
VND_Dong = ActiveWorkbook.Sheets("Chuso").Range("D8").Value 'Khong Dong
Case "One"
VND_Dong = ActiveWorkbook.Sheets("Chuso").Range("D9").Value 'Mot Dong
Case Else
VND_Dong = VND_Dong & ActiveWorkbook.Sheets("Chuso").Range("D7").Value 'Dong
End Select
'Doi voi Xu
Select Case VND_Xu
Case ""
VND_Xu = ActiveWorkbook.Sheets("Chuso").Range("D11").Value 'Khong xu
Case "One"
VND_Xu = ActiveWorkbook.Sheets("Chuso").Range("D12").Value 'Mot xu
Case Else
VND_Xu = " và " & VND_Xu & ActiveWorkbook.Sheets("Chuso").Range("D10").Value 'Xu
End Select
'Cat bo khoang trang dau tien
VND_Dong = Right(VND_Dong, Len(VND_Dong) - 1)
'Viet hoa chu cai dau tien
VND_Dong = UCase(Left(VND_Dong, 1)) & Right(VND_Dong, Len(VND_Dong) - 1)
ReadNumber = VND_Dong & VND_Xu
End Function

'Chuyen doi so tu 100->999 sang chu
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Chuyen doi noi hang tram
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & ActiveWorkbook.Sheets("Chuso").Range("D6").Value 'Tram
End If
' Chuyen doi hang chuc
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function

'Chuyen doi so tu 10->99 sang chu
Function GetTens(TensText)
Dim Result As String
Result = ""
If Val(Left(TensText, 1)) = 1 Then
'Gia tri nam trong khoang tu 10->19
Select Case Val(TensText)
'Tham chieu den O B2 de lay chu: muoi
Case 10: Result = ActiveWorkbook.Sheets("Chuso").Range("B2").Value
Case 11: Result = ActiveWorkbook.Sheets("Chuso").Range("B3").Value
Case 12: Result = ActiveWorkbook.Sheets("Chuso").Range("B4").Value
Case 13: Result = ActiveWorkbook.Sheets("Chuso").Range("B5").Value
Case 14: Result = ActiveWorkbook.Sheets("Chuso").Range("B6").Value
Case 15: Result = ActiveWorkbook.Sheets("Chuso").Range("B7").Value
Case 16: Result = ActiveWorkbook.Sheets("Chuso").Range("B8").Value
Case 17: Result = ActiveWorkbook.Sheets("Chuso").Range("B9").Value
Case 18: Result = ActiveWorkbook.Sheets("Chuso").Range("B10").Value
Case 19: Result = ActiveWorkbook.Sheets("Chuso").Range("B11").Value
Case Else
End Select
Else
'Gia tri trong khoang tu 20->99
Select Case Val(Left(TensText, 1))
'Tham chieu den O C2 de lay chu: hai muoi
Case 2: Result = ActiveWorkbook.Sheets("Chuso").Range("C2").Value
Case 3: Result = ActiveWorkbook.Sheets("Chuso").Range("C3").Value
Case 4: Result = ActiveWorkbook.Sheets("Chuso").Range("C4").Value
Case 5: Result = ActiveWorkbook.Sheets("Chuso").Range("C5").Value
Case 6: Result = ActiveWorkbook.Sheets("Chuso").Range("C6").Value
Case 7: Result = ActiveWorkbook.Sheets("Chuso").Range("C7").Value
Case 8: Result = ActiveWorkbook.Sheets("Chuso").Range("C8").Value
Case 9: Result = ActiveWorkbook.Sheets("Chuso").Range("C9").Value
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function

'Chuyen so tu 1->9 sang chu
Function GetDigit(Digit)
Select Case Val(Digit)
'Tham chieu den O A2 de lay chu: mot
Case 1: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A2").Value
'So hai
Case 2: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A3").Value
'So ba
Case 3: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A4").Value
'So bon
Case 4: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A5").Value
'So nam
Case 5: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A6").Value
'So sau
Case 6: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A7").Value
'So bay
Case 7: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A8").Value
'So tam
Case 8: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A9").Value
'So chin
Case 9: GetDigit = ActiveWorkbook.Sheets("Chuso").Range("A10").Value
Case Else: GetDigit = ""
End Select
End Function

Kích nút Save để lưu lại, bạn có thể xem thêm bài viết cách lưu file Excel khi chứa Macro hoặc hàm.

5. Quay trở lại màn hình Excel và sử dụng hàm vừa tạo
Có 2 cách để sử dụng hàm vừa tạo
- Cách 1:
Cú pháp: =readnumber(Số cần chuyển)
Ví dụ: =readnumber(13456356)
- Cách 2:
Cú pháp: =readnumber(Địa chỉ ô cần chuyển)
Ví dụ: =readnumber(A2)
Nếu bạn nào sau khi đã tạo hàm xong nhưng khi sử dụng thì gặp phải trường hợp giá trị trả về #NAME? thì phải thực hiện theo các bước dưới đây nếu sử dụng Office 2007.

- Kích nút Office Button\Excel Options
- Chọn Trust Center\Trust Center Settings



- Chọn Macro Settings\Enable all macros (not recommended; potentially dangerous code can run)




- Chọn OK

Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết