Nhờ hỗ trợ đọc số ra chữ trong excel (4 người xem)

  • Thread starter Thread starter cthssv
  • Ngày gửi Ngày gửi
Liên hệ QC

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

cthssv

Thành viên mới
Tham gia
8/6/07
Bài viết
15
Được thích
0
Em có một file bảng điểm cần đọc số sang chữ nhờ các bác giúp đỡ
 

File đính kèm

Em có một file bảng điểm cần đọc số sang chữ nhờ các bác giúp đỡ

Với 1 số thập phân thì em viết code thế này, nhưng chưa biết làm thế nào để kết quả ra tiếng Việt có dấu !$@!!

PHP:
Public Function DocDiem(ByVal Diem As Single) As String
Dim Str1 As String, Str2 As String
Str1 = Choose(Int(Diem) + 1, "Khong", "Mot", "Hai", "Ba", "Bon", "Nam", "Sau", "Bay", "Tam", "Chin")
Str2 = Choose(Int(10 * (Diem - Int(Diem))) + 1, "Khong", "Mot", "Hai", "Ba", "Bon", "Nam", "Sau", "Bay", "Tam", "Chin")
DocDiem = Str1 & " phay " & Str2
End Function
 
Cảm ơn các bác đã giúp đỡ những em làm theo không được
 
Cảm ơn các bác đã giúp đỡ những em làm theo không được

Thử vầy xem:
1> Bấm Ctrl + F3, tạo 1 name với tên là Diem, có công thức tại khung Refers to là:
Mã:
={"không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín","mười"}
2> Xong, gõ vào cell E11 công thức:
Mã:
=PROPER(INDEX(Diem,,INT([COLOR=#ff0000]D11[/COLOR])+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]D11[/COLOR]-INT([COLOR=#ff0000]D11[/COLOR]))*10)+1)
Tương tự cho cell K11:
Mã:
=PROPER(INDEX(Diem,,INT([COLOR=#ff0000]J11[/COLOR])+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]J11[/COLOR]-INT([COLOR=#ff0000]J11[/COLOR]))*10)+1)
Tất cả kéo fill xuống
 

File đính kèm

Nhờ các bác giúp đỡ việc đọc số sang chữ

Trong diễn đàn đã có bác giúp em tạo file này rồi nhưng còn gặp một số lỗi cụ thể như sau
[TABLE="width: 166"]
[TR]
[TD]4.1[/TD]
[TD]Bốn phẩy không[/TD]
[/TR]
[TR]
[TD]5.1[/TD]
[TD]Năm phẩy không[/TD]
[/TR]
[TR]
[TD]6.1[/TD]
[TD]Sáu phẩy không[/TD]
[/TR]
[TR]
[TD]7.1[/TD]
[TD]Bảy phẩy không[/TD]
[/TR]
[TR]
[TD]8.1[/TD]
[TD]Tám phẩy không[/TD]
[/TR]
[TR]
[TD]8.2[/TD]
[TD]Tám phẩy một[/TD]
[/TR]
[TR]
[TD]9.1[/TD]
[TD]Chín phẩy không[/TD]
[/TR]
[TR]
[TD]9.2[/TD]
[TD]Chín phẩy một[/TD]
[/TR]
[TR]
[TD]8.7[/TD]
[TD]Tám phẩy sáu[/TD]
[/TR]
[/TABLE]
Em gưi các bac file nhờ giúp đỡ chỗ em bôi vàng là sai
 

File đính kèm

Trong diễn đàn đã có bác giúp em tạo file này rồi nhưng còn gặp một số lỗi cụ thể như sau
[TABLE="width: 166"]
[TR]
[TD]4.1[/TD]
[TD]Bốn phẩy không[/TD]
[/TR]
[TR]
[TD]5.1[/TD]
[TD]Năm phẩy không[/TD]
[/TR]
[TR]
[TD]6.1[/TD]
[TD]Sáu phẩy không[/TD]
[/TR]
[TR]
[TD]7.1[/TD]
[TD]Bảy phẩy không[/TD]
[/TR]
[TR]
[TD]8.1[/TD]
[TD]Tám phẩy không[/TD]
[/TR]
[TR]
[TD]8.2[/TD]
[TD]Tám phẩy một[/TD]
[/TR]
[TR]
[TD]9.1[/TD]
[TD]Chín phẩy không[/TD]
[/TR]
[TR]
[TD]9.2[/TD]
[TD]Chín phẩy một[/TD]
[/TR]
[TR]
[TD]8.7[/TD]
[TD]Tám phẩy sáu[/TD]
[/TR]
[/TABLE]
Em gưi các bac file nhờ giúp đỡ chỗ em bôi vàng là sai

Đây là do sai số trong phép trừ. Ví dụ D11-INT(D11) sẽ có lúc cho kết quả không như mong muốn.
Ta giải quyết bằng cách lồng hàm ROUND vào:
Mã:
=PROPER(INDEX(Diem,,INT(D11)+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]ROUND(D11-INT(D11),1)[/COLOR])*10)+1)
 

File đính kèm

=PROPER(INDEX(Diem,,D11+1))&" phẩy " &INDEX(Diem,,MOD(D11*10,10)+1)
 
Lần chỉnh sửa cuối:
cảm ơn bác rất nhiều
 
Thử vầy xem:
1> Bấm Ctrl + F3, tạo 1 name với tên là Diem, có công thức tại khung Refers to là:
Mã:
={"không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín","mười"}
2> Xong, gõ vào cell E11 công thức:
Mã:
=PROPER(INDEX(Diem,,INT([COLOR=#ff0000]D11[/COLOR])+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]D11[/COLOR]-INT([COLOR=#ff0000]D11[/COLOR]))*10)+1)
Tương tự cho cell K11:
Mã:
=PROPER(INDEX(Diem,,INT([COLOR=#ff0000]J11[/COLOR])+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]J11[/COLOR]-INT([COLOR=#ff0000]J11[/COLOR]))*10)+1)
Tất cả kéo fill xuống
Thầy cho em hỏi là nếu số lớn hơn 10 thì phải sửa công thức như nào ạ, em nhập số lớn hơn 10 vào thì công thức báo lỗi?
 
Thầy cho em hỏi là nếu số lớn hơn 10 thì phải sửa công thức như nào ạ, em nhập số lớn hơn 10 vào thì công thức báo lỗi?
trong cái name có 11 phần tử (0 -10) mà bạn nhập số cần chọn > hơn dự liệu mạng ấy thì báo lỗi phải rồi


xem lại hàm index
 
Số >10 ta dùng code đọc số mà xài chứ đâu có viết đơn giản thế này được
thầy cho em xin code đó được không ạ, em có down mấy addin đọc số ra chữ trên diễn đàn về nhưng đó toàn đọc ra số tiền thui, em chỉ muốn đọc số 10 thành "Mười", số 20 thành "Hai mươi" .... hix
 
thầy cho em xin code đó được không ạ, em có down mấy addin đọc số ra chữ trên diễn đàn về nhưng đó toàn đọc ra số tiền thui, em chỉ muốn đọc số 10 thành "Mười", số 20 thành "Hai mươi" .... hix

Tôi đang dùng code này của bạn Huuthang_bd. Xem ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?104296-Bị-lỗi-font-chữ-trong-vba-đổi-số-thành-chữ
 
Em kích chuột phải vào sheet hiện hành chọn view code, sau đó copy đoạn code thầy gửi vào cửa sổ VBA đó, sau đó quay trở lại sheet vừa rồi phải thao tác như nào nữa ạ? em không rành về code VBA nên không biết dùng tiếp thế nào, thầy giúp em với, em cảm ơn!
 
Em kích chuột phải vào sheet hiện hành chọn view code, sau đó copy đoạn code thầy gửi vào cửa sổ VBA đó, sau đó quay trở lại sheet vừa rồi phải thao tác như nào nữa ạ? em không rành về code VBA nên không biết dùng tiếp thế nào, thầy giúp em với, em cảm ơn!

Làm như sau:
- Từ bảng tính Excel, bạn bấm Alt + F11 để vào cửa sổ VBA
- Trong cửa sổ VBA, vào menu Insert, chọn Module (để chèn 1 module)
- Copy code rồi paste vào khung bên phải (của module vừa tạo)
- Bấm Alt + Q để trở về bảng tính
- Trên bảng tính, sử dụng hàm tự tạo như bất kỳ hàm bình thường nào, chẳng hạn: =DocSo(A1) để đọc số đã gõ tại cell A1
- Lưu ý quan trọng: Nếu muốn lưu file thì bắt buộc phải lưu theo định dạng XLS, XLSM, XLSB (chứ không thể là XLSX). Lần sau mở file có chứa code, phải biết cách Enable Macro thì code mới hoạt động
---------------------
Nói thêm và cách của bạn: Click phải vào sheet, chọn View code chỉ vào được cửa sổ code cho từng sheet thôi. Thường ở cửa sổ này người ta dùng để chèn code sự kiện chứ còn HÀM thì phải chèn vào MODULE
 
Lần chỉnh sửa cuối:
Làm như sau:
- Từ bảng tính Excel, bạn bấm Alt + F11 để vào cửa sổ VBA
- Trong cửa sổ VBA, vào menu Insert, chọn Module (để chèn 1 module)
- Copy code rồi paste vào khung bên phải (của module vừa tạo)
- Bấm Alt + Q để trở về bảng tính
- Trên bảng tính, sử dụng hàm tự tạo như bất kỳ hàm bình thường nào, chẳng hạn: =DocSo(A1) để đọc số đã gõ tại cell A1
- Lưu ý quan trọng: Nếu muốn lưu file thì bắt buộc phải lưu theo định dạng XLS, XLSM, XLSB (chứ không thể là XLSX). Lần sau mở file có chứa code, phải biết cách Enable Macro thì code mới hoạt động
---------------------
Nói thêm và cách của bạn: Click phải vào sheet, chọn View code chỉ vào được cửa sổ code cho từng sheet thôi. Thường ở cửa sổ này người ta dùng để chèn code sự kiện chứ còn HÀM thì phải chèn vào MODULE
Hay quá em cảm ơn thầy nhiều, lúc nãy em cũng thử chèn vào module nhưng hàm lỗi hóa ra vì em đang để định dạng bảng tính ở dạng XLSX của office 2013. Em cảm ơn thầy nhiều ạ!
 
Web KT

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

Back
Top Bottom