Note: The other languages of the website are Google-translated. Back to English

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.

doc bảo vệ trước ngày 1

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


mũi tên màu xanh bong bóng bên phải 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

doc bảo vệ trước ngày 2

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:

doc bảo vệ trước ngày 3

(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:

doc bảo vệ trước ngày 4


mũi tên màu xanh bong bóng bên phải 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

doc bảo vệ trước ngày 5

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:

doc bảo vệ trước ngày 6

(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:

doc bảo vệ trước ngày 7


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

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

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!
officetab dưới cùng
Nhận xét (30)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Kẽ hở: Người khác có thể nhìn thấy mật khẩu bằng cách sử dụng tùy chọn "Mã Xem".
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
không hoạt động vì tất cả các ô hiển thị thông báo nhưng có thể chỉnh sửa
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, có thể khóa các cột theo ngày ngay phía trên các cột không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Private Sub worksheet_Change (ByVal Target As Range)

'Đăng ký http://youtube.com/excel10tutorial

'Ủng hộ kênh bằng cách quyên góp trên http://patreon.com/excel10tutorial

Dim col As Range

'Đặt tên trang tính chính xác ở đây:

Với ThisWorkbook.Sheets ("AGOSTO-22")

.Unprotect "ABCDE"

Đối với mỗi cột trong .UsedRange.Columns

col.EntireColumn.Locked = col.Range ("A1"). Giá trị <> Ngày

Col tiếp theo

.Bảo vệ "ABCDE"

.EnableSelection = xlNoRestrictions

Kết thúc với

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, có thể khóa các ô nhất định tùy thuộc vào ngày nằm ngay phía trên chúng trong một cột không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Lusis,
Bạn có thể cho biết vấn đề của bạn cụ thể hơn được không? Hoặc bạn có thể đính kèm ảnh chụp màn hình là vấn đề của bạn.
Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào skyyang

Có đây là một ảnh chụp màn hình. Hi vọng điêu nay co ich.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nó đây rồi
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Lucis,
Ý của bạn là khóa các cột ngày đã qua và chỉ các cột của ngày hôm nay và những ngày trong tương lai mới có thể được sửa đổi?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Sửa! Làm thế nào tôi sẽ đi về điều đó?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Luis,
Làm thế nào về ô ngày tháng trong A1? Nó được nhập theo cách thủ công hay được nhập bằng công thức = now ()? Nếu đó là một ô công thức, các cột bị khóa sẽ được thay đổi với các thay đổi về ngày tháng.
Mong chơ hôi âm của bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Skyyangg

có, ô A1 có công thức = now ().

cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào.....


Tôi đang sử dụng mã cho 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)
'Cập nhật bởi Extendoffice 20161025
If Range ("A" & Selection.Row) .Value <> Date Then
Mật khẩu ActiveSheet.Protect: = "111111"
MsgBox "Chỉ có thể chỉnh sửa hàng ngày hôm nay!", VbInformation, "Kutools cho Excel"
ElseIf Range ("E" & Selection.Row) .Value = Ngày sau đó
ActiveSheet.Unprotect Password: = "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Cuối Nếu
End Sub


Sau khi tôi lưu tôi và nhấp vào ô tôi nhận được thông báo, chỉ hàng ngày hôm nay mới có thể được chỉnh sửa .... nhưng nếu tôi nhấp đúp vào ô, tôi có thể chỉnh sửa ... làm ơn giúp
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này làm việc tuyệt vời. nhưng làm cách nào để chuyển nó sang mở khóa một cột dựa trên ngày trong hàng 3?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Là một người tương đối mới với VBA, bạn có vui lòng giải thích tại sao xRow = 2 trong Dòng 4 không?



Cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
bởi vì trong hàng không. 1 bạn có tiêu đề
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

trong khi chạy mã này, tôi gặp lỗi như trong hình
Ngoài ra, tôi đang đính kèm một ảnh chụp nhanh excel của mình, nơi tôi muốn thực hiện các thay đổi ..

Bạn có thể hướng dẫn trong mã của tôi nơi tôi nên thực hiện các thay đổi theo tệp excel của mình để các ô chỉ chứa ngày và ngày trong tương lai có thể được chỉnh sửa không ???
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Karan,
Vì có các ô đã hợp nhất trong bảng của bạn, nên mã trên không thể được áp dụng chính xác trong bảng các ô đã hợp nhất.
Nếu bạn có bất kỳ ý tưởng hay nào khác, hãy bình luận tại đây. Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đã cố gắng làm điều tương tự nhưng để Bảo vệ tất cả các cột ngoại trừ cột ngày hôm nay bằng mã VBA bằng cách thay thế "Selection.Row" bằng "Selection.Columns" và "E" bằng "5" (số hàng có ngày), nhưng Tôi tiếp tục nhận được lỗi 1004!

Có ai giúp đỡ không?

Cảm ơn bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đã cố gắng làm điều tương tự nhưng để Bảo vệ tất cả các cột ngoại trừ cột ngày hôm nay bằng mã VBA bằng cách thay thế "Selection.Row" bằng "Selection.Columns" và "E" bằng "5" (số hàng có ngày), nhưng Tôi tiếp tục nhận được lỗi 1004!

Có ai giúp đỡ không?

Cảm ơn bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Để áp dụng mã này cho các cột mà bạn cần, vui lòng sử dụng mã VBA sau: (Lưu ý: Trong mã, 5 là số hàng chứa ngày, vui lòng thay đổi theo nhu cầu của bạn.)

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Dim xRg theo phạm vi
Đặt xRg = Target.Worksheet.Cells (5, Target.Column)
Nếu xRg <> Ngày thì
Mật khẩu ActiveSheet.Protect: = "111111"
MsgBox "Chỉ có thể chỉnh sửa hàng ngày hôm nay!", VbInformation, "Kutools cho Excel"
ElseIf xRg.Value = Ngày thì
ActiveSheet.Unprotect Password: = "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Cuối Nếu
End Sub

Hãy cố gắng, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn! Xin lỗi, tôi không nhận được trả lời của bạn cho đến bây giờ, nó có thể là một vấn đề trong email của tôi.

Nó đã làm việc! Không thể nói lời cảm ơn đủ! Tôi thực sự đánh giá cao điều đó!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Rất vui vì nó có thể giúp ích cho bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Tôi đang cố gắng mở rộng điều này để bảo vệ các cột không bao gồm tháng hiện tại này hoặc / và tuần hiện tại này. Tôi đã cố gắng thay thế "Ngày" bằng "tháng" hoặc "tuần", nhưng không hiệu quả.

Tôi đã đính kèm một mẫu cho trang tính tuần mà người dùng không thể chỉnh sửa hoặc nhập các cột khác với tuần này.

Bất kỳ lời khuyên về điều đó? hay tôi sẽ sử dụng ngày thực tế để phản ánh một ngày trong tháng?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn sự giúp đỡ của bạn, Cảm ơn bạn rất nhiều, Đó là một sự giúp đỡ tuyệt vời. và giải quyết căng thẳng của tôi.
Hãy an toàn
Trân trọngRohit Khanna
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Tôi đang gặp phải một vấn đề, sau khi tôi đóng tệp và mở lại vào cùng ngày, mã không hoạt động. làm ơn giúp tôi bị kẹt
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào, vớ vẩn,
Để giữ mã, bạn nên lưu sổ làm việc của mình dưới dạng Excel Macro-Enabled Workbook, vui lòng thử, cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, tôi đã làm điều đó nhưng khi tôi nhấn vào ô thông báo rằng nó không thể sửa được nhưng khi tôi nhấn keyborad tôi vẫn có thể viết trong ô
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi muốn bảo vệ những ngày trong tương lai và cho phép chỉnh sửa những ngày hiện tại và quá khứ. Làm thế nào để làm điều đó?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Miguel, Để bảo vệ những ngày tương lai, vui lòng áp dụng mã dưới đây: Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật bởi Extendoffice
Dim xRow As Long
xHàng = 2
ThisWorkbook.ActiveSheet.Unprotect Password: = "111111"
ThisWorkbook.ActiveSheet.Cells.Locked = Sai
Do Until IsEmpty (Cells (xRow, 5))
If Cells (xRow, 5)> Date Then
Hàng (xRow) .Locked = True
Cuối Nếu
xRow = xRow + 1
Vòng lặp
ThisWorkbook.ActiveSheet.Protect Password: = "111111"
End SubXin vui lòng cố gắng, hy vọng nó có thể giúp bạn!
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL