2010-08-24 16 views

Antwort

5

Abhängig davon, wie Sie den Bereich auswählen möchten. Dies ist nur eine Zelle. Wenn Sie zu J1 zurückkehren und den Wert ändern, sollten Sie dazu aufgefordert werden.

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

End Sub 

Zellen werden erst gesperrt, wenn das Arbeitsblatt geschützt ist. Standardmäßig sind alle Zellen auf "Gesperrt" eingestellt. Daher müssen Sie Zellen entsperren, die von den Benutzern geändert werden können.

+0

Wenn ich diese Arbeit für eine Reihe von Zellen machen will, Wie kann ich das tun.Pardon mein Mangel an Wissen, ich bin neu in der Programmierung. – gizgok

+0

Bereich ("A1: K47") – JeffO

+0

Dies macht alle Zellen nur lesbar..am mache ich einen Fehler. Private Sub Worksheet_Change (Cellrange As String) Range (Cellrange) .Select Selection.Locked = True ActiveSheet.Protect Inhalt: = True End Sub – gizgok

0

This page bietet ein kleines Sub zum Schutz einer Reihe von Zellen.

Auszug

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 

H1:H10 zu schützen. Wenn der Benutzer eine Zelle innerhalb von H1:H10 ändern möchte, wird in einer Warnmeldung angegeben, dass die Zelle nicht geändert werden darf und stattdessen die Nachbarzelle in der nächsten Spalte (I) ausgewählt wird.

+0

Ziemlich sicher, dass dies keine richtige Antwort ist – titus

0

In Excel können Sie zum Menü Schutz gehen und angeben, für welche Zellen ein Passwort geändert werden muss. Sie können auch mehrere Bereiche angeben.

Ich hoffe, das ist, was Sie gesucht haben.

1

Sie können versuchen, Zellen zu schützen. Oder Sie können es selbst mit einem SelectionChange-Handle-Ereignis codieren ...:

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

Unter diesen Umständen finde ich oft den besten Weg, das Blatt zu sperren, aber nur für den Benutzer mit dem UserInterfaceOnly Argument, das immer noch uneingeschränkte programmatische Interaktion mit dem Blatt erlaubt.

ActiveSheet.ProtectUser InterfaceOnly:=True 

Es gibt verschiedene andere Argumente, die eingestellt werden kann, dass der Benutzer immer noch erlaubt, zu filtern, sortieren usw. sollte dies erforderlich sein, hat die Hilfedatei eine vollständige Liste.

Verwandte Themen