iện nay, việc chuyển đổi số thành chữ trong Excel đã không còn phải làm thủ công và mất thời gian như trước bởi đã có sự hỗ trợ của các tiện ích (Add-ins). Đây là những tiện ích được phát triển bởi một nhóm lập trình nào đó hay một công ty. Tuy nhiên, các tiện ích này đã được biên dịch nên bạn không thể xem và chỉnh sửa Code theo ý muốn. Vậy bạn có muốn viết 1 hàm chuyển đổi số sang chữ cho riêng mình ngay trên phần mềm Excel không? Cuuhotinhoc.com sẽ hướng dẫn các bạn viết hàm chuyển số sang chữ và sử dụng hàm này như các hàm thông dụng khác trong Excel như AVERAGE, SUM, IF, COUT… 1. Khởi động Microsoft Excel 2. Đổi tên 1 Sheet bất kỳ thành Chuso Sheet này chứa tất cả các ký tự phục vụ việc chuyển số sang chữ do việc nhập ký tự tiếng việt tại màn hình soạn thảo Code bị lỗi. Như vậy, chữ số được để trong Sheet giúp người sử dụng dễ dàng thay đổi các mã font như: Unicode, TCVN3, VNI tùy ý. Sheet Chuso sau khi nhập xong dữ liệu sẽ như hình dưới: 3. Nhấn ALT + F11 để bắt đầu Visual Basic Editor Trong menu Insert chọn Module 4. Nhập toàn bộ đoạn mã sau Mã: 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 Click Save để lưu lại. 5. Quay lại màn hình Excel và sử dụng hàm vừa tạo Cách 1: Gọi hàm: =readnumber(Số cần chuyển) Ví dụ: =readnumber(1546426) Cách 2: Gọi hàm: =readnumber(Địa chỉ ô cần chuyển) Ví dụ: =readnumber(A4) Trường hợp gặp phải giá trị trả về #NAME? trong Office 2007 thì bạn phải thực hiện theo các bước sau: Click Office Button -> Excel Options -> Trust Center -> Trust Center Settings Chọn Macro Settings -> Enable all macros (not recommended; potentially dangerous code can run) Chọn OK để hoàn tất. Hi vọng bài viết Hàm chuyển số sang chữ trong Excel giúp ích cho bạn trong nhiều công việc.