Bỏ qua nội dung chính

Làm cách nào để chỉ cho phép định dạng ngày tháng trong các ô cụ thể?

Làm cách nào bạn có thể hạn chế danh sách ô chỉ cho phép nhập định dạng ngày tháng trong trang tính Excel? Trong bài viết này, tôi sẽ nói về một số thủ thuật thú vị để đối phó với công việc này.

Chỉ cho phép định dạng ngày tháng trong các ô cụ thể với chức năng Xác thực dữ liệu

Chỉ cho phép định dạng ngày tháng trong các ô cụ thể có mã VBA


mũi tên màu xanh bong bóng bên phải Chỉ cho phép định dạng ngày tháng trong các ô cụ thể với chức năng Xác thực dữ liệu

Trong Excel, Xác nhận dữ liệu là một chức năng mạnh mẽ có thể giúp bạn tạo danh sách thả xuống, để ngăn các mục nhập trùng lặp, v.v. Nó cũng có thể giúp bạn ngăn việc nhập định dạng dữ liệu khác nhưng chỉ định dạng ngày tháng trong các ô cụ thể. Vui lòng thực hiện theo các bước sau:

1. Nhấp chuột Ngày > Xác nhận dữ liệu > Xác nhận dữ liệu, xem ảnh chụp màn hình:

doc cho phép ngày 1

2. Trong Xác nhận dữ liệu hộp thoại, nhấn Cài đặt tab, và sau đó chọn Tuỳ chỉnh từ Cho phép danh sách thả xuống, sau đó nhập công thức này: = VÀ (ISNUMBER (B2), LEFT (CELL ("định dạng", B2), 1) = "D") vào Công thức hộp văn bản, xem ảnh chụp màn hình:

doc cho phép ngày 2

Chú thích: Trong công thức trên, B2 là ô đầu tiên của cột mà bạn muốn giới hạn định dạng dữ liệu.

doc cho phép ngày 3

3. Sau đó, nhấp vào Cảnh báo lỗi trong hộp thoại, vui lòng thực hiện các thao tác sau:

(1.) Kiểm tra Hiển thị cảnh báo lỗi sau khi nhập dữ liệu không hợp lệ Tùy chọn;

(2.) Dưới Phong cách thả xuống, vui lòng chọn Dừng Tùy chọn;

(3.) Nhập Yêu sáchThông báo lỗi mà bạn muốn hiển thị trong hộp nhắc.

4. Sau khi hoàn tất cài đặt, hãy nhấp vào OK và bây giờ, khi bạn nhập dữ liệu không phải là định dạng ngày thực, một hộp nhắc sẽ bật ra để nhắc bạn như ảnh chụp màn hình sau:

doc cho phép ngày 4


mũi tên màu xanh bong bóng bên phải Chỉ cho phép định dạng ngày tháng trong các ô cụ thể có mã VBA

Phương pháp thứ hai, tôi sẽ giới thiệu một mã VBA cho bạn.

1. Kích hoạt trang tính mà bạn muốn sử dụng.

2. Sau đó, nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu ngữ cảnh, xem ảnh chụp màn hình:

doc cho phép ngày 5

3. Trong hiển thị Microsoft Visual Basic cho các ứng dụng cửa sổ, sao chép và dán mã bên dưới vào Mô-đun, xem ảnh chụp màn hình:

Mã VBA: Chỉ cho phép định dạng ngày nhập vào các ô cụ thể:

Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub

doc cho phép ngày 6

4. Sau đó, lưu quảng cáo đóng mã, bây giờ, khi bạn nhập giá trị không phải là định dạng ngày trong phạm vi B2: B12, một hộp nhắc sẽ bật ra để nhắc bạn và giá trị ô sẽ bị xóa đồng thời, xem ảnh chụp màn hình:

doc cho phép ngày 7

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!

 

Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Buenos dias

Estoy utilizando la formula en la validación de datos pero no me deja ingresar ningún formato de fecha, me puede explicar por favor

Muchas gracias
This comment was minimized by the moderator on the site
Hi I want to restrict the Date Format in DD.MM.YYYY in excel
May please suggest
This comment was minimized by the moderator on the site
Hello, Ramesh
To restrict the Date Format in DD.MM.YYYY, you can apply the below code:
Note: Please change the cell reference B2:B12 to your own list of cell.
Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
    On Error Resume Next
    
    Dim Bool As Boolean
    Dim Rg As Range
    Dim xRegEx As Object
    
    Bool = False

    Set Rg = Application.Intersect(Target, ActiveSheet.Range("B2:B12"))
    If Rg Is Nothing Then Exit Sub

    Set xRegEx = CreateObject("VBSCRIPT.REGEXP")
    With xRegEx
        .Pattern = "^[0-3]\d\.[0-1][0-2]\.\d{4}$"
        .Global = True
        .IgnoreCase = True
    End With
    
    Application.EnableEvents = False
    For Each c In Target
        If c.Value <> "" Then
            If Not xRegEx.test(c.Text) Then
                c.ClearContents
                Bool = True
            End If
        End If
    Next c
    Application.EnableEvents = True
    If Bool Then
        MsgBox "Error date format."
    End If
End Sub


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hello,Sorry for refreshing, the code works very nice, thank you. I just want to add one more check if its possible.Is it possible to check cell on the left if it contain certain value. Basically what I need is: if cell on the left contain N then that cell in range have to be input as a date.If cell on the left is Y then that cell needs to stay blank.
This comment was minimized by the moderator on the site
How can I oblige to enter a time? (hh:mm)Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice 20150530
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then <----------------------------And Not isTime(c) doesn't work!
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub
This comment was minimized by the moderator on the site
Hello, Roberto,

To only allow time format to be entered, you should apply the below code:



Private Sub Worksheet_Change(ByVal Target As Range)

'updateby Extendoffice

Dim xArr As Variant

Dim xF As Integer

Dim xB As Boolean

Dim xWRg, xCRg As Range

Set xWRg = ActiveSheet.Range("B2:B20")

For Each xCRg In xWRg

xArr = Split(xCRg.Value, ":")

xB = False

If UBound(xArr) <= 2 Then

For xF = LBound(xArr) To UBound(xArr)

If IsNumeric(xArr(xF)) Then

If xF = 0 Then

If (xArr(xF) > 0) And (xArr(xF) < 24) Then

Else

xB = True

GoTo BTime

End If

Else

If (xArr(xF) > 0) And (xArr(xF) < 60) Then

Else

xB = True

GoTo BTime

End If

End If

Else

xB = True

GoTo BTime

End If

Next

Else

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

BTime:

If xB Then

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

Next xCRg

End Sub



Please try it, thank you!
This comment was minimized by the moderator on the site
Thank you so much, for the VBA code to be applied to multiple columns can you please provide the formula?.. I tried but ended up getting a 405 error!
This comment was minimized by the moderator on the site
Hello, Kevin,
To make the code applied for multiple ranges, you just need to add the cell references into the code as below:

Private Sub Worksheet_Change(ByVal Target As Range)
Set w = ActiveSheet.Range("B2:B12,A1:A10,C5:C20")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Thanks a lot @skyyang, really appreciate your help :)
This comment was minimized by the moderator on the site
how to add a date validation for date format "DD-mmm-yyy" (15-Dec-2018) like this
This comment was minimized by the moderator on the site
which date format is this function allowed. It is not working for some dates
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations