Tối ưu và đơn giản hóa hoạt động đào tạo tại doanh nghiệp. Sẵn sàng nền tảng, nội dung đào tạo cho tất cả các vị trí, bộ phận. Ứng dụng MIỄN PHÍ ngay vào doanh nghiệp chỉ với MỘT click.
Chào bạn, về sau hiểu rõ hơn bạn sẽ tìm hiểu áp dụng ràng buộc kiểm tra dữ liệu người dùng nhập vào textbox. Nếu người dùng nhập vào không đúng theo định dạng ngày tháng năm mình quy định thì sẽ báo lỗi, và yêu cầu nhập lại chính xác bạn nhé!
Riêng về Format, chỉ có mục đích định dạng, chứ không phải là thay đổi bản chất dữ liệu bạn nhé!
vỗ tay
Vương Minh Đăng16:11 - Nov 16, 2018
dạ, mà em không tìm được bài giảng về vấn đề đó ạ :(, em có tham khảo trên mạng mà cũng không thành công, thầy nói rõ hơn giúp em với
vỗ tay
Vương Minh Đăng16:11 - Nov 16, 2018
Bạn xem lại nội dung Chương 10 nhé! Trong đó có các bài giảng về kiểm tra dữ liệu, bạn tùy biến lại cho ngày tháng năm là được nhé!
vỗ tay
Vương Minh Đăng17:11 - Nov 16, 2018
Private Sub btnInsert_Click() Dim dong_cuoi As Long dong_cuoi = Sheet2.Range("B10000").End(xlUp).Row + 1
If WorksheetFunction.CountIf(Sheet2.Range("C:C"), Me.txtCMND) > 0 Then MsgBox "CMND da ton tai!", vbCritical Exit Sub End If If WorksheetFunction.CountIf(Sheet2.Range("D:D"), Me.txtSDT) > 0 Then MsgBox "SDT da ton tai!", vbCritical Exit Sub End If With Sheet2 .Range("B" & dong_cuoi) = txtHoTen.Text .Range("C" & dong_cuoi) = txtCMND.Text .Range("D" & dong_cuoi) = txtSDT.Text .Range("E" & dong_cuoi) = txtNgaySinh.Text Range("E" & dong_cuoi).Select Selection.NumberFormat = "m/d/yyyy" .Range("I" & dong_cuoi) = txtGhichu.Text
If cbMB.Value = True Then .Range("F" & dong_cuoi) = "x" End If If cbFE.Value = True Then .Range("G" & dong_cuoi) = "x" End If End With With Me .txtHoTen = "" .txtCMND = "" .txtSDT = "" .txtNgaySinh = "" .txtGhichu = "" cbMB.Value = False cbFE.Value = False
End With End Sub
Em làm như trên để định dạng ngày tháng mà không được, thầy xem giúp e sai chỗ nào với ạ :(
vỗ tay
Vương Minh Đăng17:11 - Nov 16, 2018
Cùng nhóm với IF THEN kiểm tra, bạn tham khảo code sau: '==== If Not IsDate(txtNgaysinh.Text) Then MsgBox "Vui long nhap dung ngay thang nam sinh: mm/dd/yyyy" txtNgaysinh.SetFocus Exit Sub End If
vỗ tay
Vương Minh Đăng18:11 - Nov 16, 2018
Ý của em là làm sao khi e nhập trên form 4/12/2018 thì khi submit nó hiển thị đúng như vậy, không bị đảo ngược thành 12/4/2018 ấy ạ
vỗ tay
Vương Minh Đăng18:11 - Nov 16, 2018
Bạn hiển thị hẳn trên Label của Textbox yêu cầu người dùng nhập theo đúng thứ tự như vậy. Và dùng hàm CDATE để convert TEXTBOX sang giá trị tương ứng.
vỗ tay
Vương Minh Đăng18:11 - Nov 16, 2018
Ngoài ra bạn có thể định dạng, và chuyển đổi tương ứng. If Not IsDate(txtNgaysinh.Text) Then MsgBox "Vui long nhap dung ngay thang nam sinh: mm/dd/yyyy" txtNgaysinh.SetFocus Exit Sub ELSE txtNgaysinh.Text = Format(CDATE(txtNgaysinh.Text), "mm/dd/yyyy") End If
Bạn thêm format ngay sau phần đã gán vào sheet rồi thì kết quả không đúng là phải rồi còn gì nữa bạn?
Bạn phải thêm vào trước khi gán vào sheet mới đúng nhé! Ngoài ra nên viết kèm hàm IF THEN như gợi ý bên trên để kiểm tra xem dữ liệu ngày tháng năm nhập có đúng không bạn nhé!
vỗ tay
Vương Minh Đăng11:11 - Nov 17, 2018
Em cám ơn, tình hình là vẫn không được ạ
vỗ tay
Vương Minh Đăng12:11 - Nov 18, 2018
Ngày tháng năm thường do thiết lập Region trong Control Panel quy định. Nếu bạn muốn người dùng nhập theo quy định của Form, thì bạn cần kiểm tra nội dung nhập. Và dùng hàm Split để tách ra theo dấu "/" , rồi dùng hàm ngày tháng trong VBA xử lý lại bạn nhé.