2010-08-24 37 views

Trả lời

5

Phụ thuộc vào cách bạn muốn chọn dải ô. Đây chỉ là một ô. Nếu bạn quay lại J1 và thay đổi giá trị, bạn sẽ được nhắc nhở.

Private Sub Worksheet_Change(ByVal Target As Range) 
    Range("J1").Select 
    Selection.Locked = True 
    ActiveSheet.Protect Contents:=True 
    Range("K1").Select 

End Sub 

Các ô không bị khóa cho đến khi trang tính được bảo vệ. Theo mặc định, tất cả các ô được đặt thành Đã khóa, vì vậy, bạn sẽ phải mở khóa các ô bạn muốn người dùng có thể thay đổi.

+0

Nếu tôi muốn thực hiện công việc này cho các tế bào điện tử reo, Làm cách nào tôi có thể làm điều đó. – gizgok

+0

Phạm vi ("A1: K47") – JeffO

+0

Điều này làm cho tất cả các tế bào chỉ đọc được .. tôi có mắc lỗi. Private Sub Worksheet_Change (cellrange As String) Range (cellrange) .Select Selection.Locked = True ActiveSheet.Protect Nội dung: = True End Sub – gizgok

0

This page cung cấp một phụ nhỏ để bảo vệ một dải ô.

Trích

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Intersect(Target, Range("H1:H10")) Is Nothing Then 
     Target.Offset(0, 1).Select 
     MsgBox "you may not enter that cell" 
    End If 
End Sub 

Để bảo vệ H1:H10. Khi người dùng muốn thay đổi một ô trong phạm vi H1:H10 thông báo cảnh báo cho biết rằng ô có thể không được sửa đổi và ô bên cạnh trong cột tiếp theo (I) được chọn thay thế.

+0

Chắc chắn rằng đây không phải là câu trả lời phù hợp – titus

0

Trong excel bạn có thể chuyển đến menu Bảo vệ và chỉ định ô nào sẽ yêu cầu mật khẩu để sửa đổi. Bạn cũng có thể chỉ định nhiều dải ô.

Hy vọng đây là những gì bạn đang tìm kiếm.

1

Bạn có thể thử bảo vệ các ô. Hoặc bạn có thể tự viết mã bằng cách sử dụng sự kiện xử lý SelectionChange ...:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
     If Not Intersect(Selection, Range("A24:A50")) Is Nothing Then 
     Range("B1").Select 
     End If 
    End Sub 
4

Trong những trường hợp này, tôi thường tìm cách tốt nhất là khóa trang tính nhưng chỉ cho người dùng bằng cách sử dụng đối số UserInterfaceOnly vẫn cho phép tương tác không bị giới hạn theo chương trình với trang tính.

ActiveSheet.ProtectUser InterfaceOnly:=True 

Có nhiều đối số khác có thể đặt cho phép người dùng lọc, sắp xếp, v.v ... nếu cần, tệp trợ giúp có danh sách đầy đủ.

Các vấn đề liên quan