Làm cách nào để bảo vệ các ô dựa trên ngày tháng trong Excel?
Thông thường, chúng tôi có thể bảo vệ trang tính để ngăn người khác chỉnh sửa hoặc sửa đổi giá trị ô, nhưng đôi khi, bạn cần bảo vệ các ô dựa trên ngày tháng. Ví dụ: tôi muốn bảo vệ các ô khác nhưng chỉ cho phép sửa đổi giá trị ô của ngày hôm nay như ảnh chụp màn hình sau đây, bài viết này sẽ nói về cách bảo vệ các ô dựa trên ngày.
Bảo vệ tất cả các hàng ngoại trừ hàng ngày hôm nay bằng mã VBA
Bảo vệ tất cả các hàng ngày đã trôi qua bằng mã VBA
Bảo vệ tất cả các hàng ngoại trừ hàng ngày hôm nay bằng mã VBA
Chỉ cho phép hàng bằng với ngày hôm nay được sửa đổi, mã sau có thể giúp bạn, vui lòng làm như sau:
1. Bấm chuột phải vào tab trang tính mà bạn muốn bảo vệ các ô dựa trên ngày tháng, rồi chọn Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán mã sau vào Mô-đun trống:
Mã VBA: Bảo vệ tất cả các hàng ngoại trừ hàng ngày hôm nay:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
If Range("E" & Selection.Row).Value <> Date Then
ActiveSheet.Protect Password:="111111"
MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
ElseIf Range("E" & Selection.Row).Value = Date Then
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub
Chú thích: Trong đoạn mã trên, chữ cái E là tiêu đề cột nơi đặt ngày, “111111”Là mật khẩu để bảo vệ trang tính này. Bạn có thể thay đổi chúng theo nhu cầu của bạn.
2. Sau đó lưu và đóng cửa sổ mã này.
(1.) Nếu bạn nhấp vào các ô khác ngoài hàng ngày hôm nay, một hộp nhắc sẽ bật ra để nhắc bạn rằng không thể chỉnh sửa ô, hãy xem ảnh chụp màn hình:
(2.) Nếu bạn nhấp và chỉnh sửa hàng bằng ngày hôm nay, nó sẽ được sửa đổi thành công, xem ảnh chụp màn hình:
Bảo vệ tất cả các hàng ngày đã trôi qua bằng mã VBA
Nếu bạn cần bảo vệ tất cả các hàng ngày đã qua, chỉ cho phép sửa đổi các hàng ngày hôm nay và trong tương lai, vui lòng áp dụng mã VBA sau:
1. Bấm chuột phải vào tab trang tính mà bạn muốn bảo vệ các ô dựa trên ngày tháng, rồi chọn Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán mã sau vào Mô-đun trống:
Mã VBA: Bảo vệ tất cả các hàng đã qua ngày:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
Dim xRow As Long
xRow = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = False
Do Until IsEmpty(Cells(xRow, 5))
If Cells(xRow, 5) < Date Then
Rows(xRow).Locked = True
End If
xRow = xRow + 1
Loop
ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub
Chú thích: Trong đoạn mã trên, số 5 là số cột nơi đặt ngày, “111111”Là mật khẩu để bảo vệ trang tính này. Bạn có thể thay đổi chúng theo nhu cầu của bạn.
3. Sau đó lưu và đóng cửa sổ mã này.
(1.) Nếu bạn nhấp vào ngày ô đã trôi qua, một hộp nhắc sẽ bật ra để nhắc bạn rằng ô không thể được chỉnh sửa, hãy xem ảnh chụp màn hình:
(2.) Nếu bạn nhấp vào ô hàng để cố gắng thay đổi các giá trị trong ngày hôm nay hoặc ngày trong tương lai, nó sẽ được sửa đổi thành công, xem ảnh chụp màn hình:
Công cụ năng suất văn phòng tốt nhất
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...
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!