Em có một file bảng điểm cần đọc số sang chữ nhờ các bác giúp đỡ
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
Em có một file bảng điểm cần đọc số sang chữ nhờ các bác giúp đỡ
Cảm ơn các bác đã giúp đỡ những em làm theo không được
={"không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín","mười"}
=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)
=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)
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
=PROPER(INDEX(Diem,,INT(D11)+1))&" phẩy " &INDEX(Diem,,LEFT(([COLOR=#ff0000]ROUND(D11-INT(D11),1)[/COLOR])*10)+1)
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ử 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à:
2> Xong, gõ vào cell E11 công thức:Mã:={"không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín","mười"}
Tương tự cho cell K11: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ất cả kéo fill xuốngMã:=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)
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ồiThầ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?
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" .... hixSố >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
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!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!
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 ạ!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