Fix Lỗi Excel Tự Chuyển Điểm Số Thành Ngày Tháng (VBA)
Trong quá trình nhập điểm thi (ví dụ: 5.6, 6.5), Excel thường tự động hiểu nhầm thành ngày tháng (5/6 hoặc 6/5). Đây là giải pháp VBA tối ưu giúp bạn chuyển đổi hàng loạt về số thực mà không làm ảnh hưởng đến các dữ liệu đã đúng sẵn.
Sub ChuyenDoiDiemHonHop()
Dim cell As Range
Dim ketQua As Double
Application.ScreenUpdating = False
For Each cell In Selection
If Not IsEmpty(cell) Then
' Kiểm tra nếu là định dạng Ngày tháng
If IsDate(cell.Value) And IsNumeric(cell.Value) = False Then
' Chuyển Ngày thành phần nguyên, Tháng thành thập phân
ketQua = Day(cell.Value) + (Month(cell.Value) / 10)
cell.Value = ketQua
' Nếu là Text chứa số thì chuyển về số thực
ElseIf VarType(cell.Value) = vbString Then
If IsNumeric(cell.Value) Then cell.Value = CDbl(cell.Value)
End If
' Định dạng hiển thị 1 chữ số thập phân
cell.NumberFormat = "0.0"
End If
Next cell
Application.ScreenUpdating = True
MsgBox "Hoàn thành xử lý dữ liệu!", vbInformation, "Thông báo"
End Sub
Các bước thực hiện:
- Mở file Excel bảng điểm, nhấn Alt + F11.
- Vào Insert -> Module và dán đoạn mã trên vào.
- Quay lại bảng tính, bôi đen vùng dữ liệu cần xử lý (bao gồm cả ô đúng và ô lỗi).
- Nhấn Alt + F8, chọn
ChuyenDoiDiemHonHopvà nhấn Run.