2016-09-26 2 views
-2
Sub ProtectAll() 

    Sheet4.Protect Password:="xx2016" 

End Sub 

Bitte helfen Code zu verbessern zu sperren, um nur ein Arbeitsblatt zu sperrenIch versuche nur Zellen in einem Arbeitsblatt VBA Excel

+2

Wie wollen Sie brauchen diese „verbessert“? Funktioniert es oder nicht? Brauchst du etwas anderes? Etwas mehr? Schneller? Ohne weitere Informationen ist Ihre Frage sehr unklar – psubsee2003

+2

Dieser Code wird nur 'sheet4' sperren, so dass es genau das tut, was Sie fragen. Wenn Sie andere Blätter gesperrt sind, ist es ein Ergebnis von etwas anderem als diesem Code. –

+0

AAA wollten Sie eine Zelle oder ein Arbeitsblatt sperren? Da die oben genannten Nutzer genau das tun, wonach Sie fragen, können Sie bitte weitere Details zum Problem und zu anderem Code angeben? Wenn ein anderes Arbeitsblatt gesperrt ist, war es wahrscheinlich entweder bereits gesperrt oder Sie haben ein anderes Sub, das alle sperrt. – Pav

Antwort

1

Es wäre toll, wenn Sie weitere Informationen über Ihre eigentliche Problem liefern könnten. Ich denke, dass Sie eine bestimmte Zelle sperren möchten, aber wenn Sie das Blatt sperren, sind alle Zellen gesperrt. Wenn das so ist, ist hier die Lösung. Wenn nicht, erkläre bitte dein Problem!

Zunächst müssen Sie das Attribut "Gesperrt" für alle Zellen auf "false" setzen (der Standardwert ist "true"). Dann wird das Attribut "Gesperrt" für alle erforderlichen Zellen auf "True" gesetzt. Dann können Sie das Blatt sperren.

Sub Makro2() 
    Cells.Select 
    Selection.Locked = False 
    Selection.FormulaHidden = False 
    Range("E6").Select 
    Selection.Locked = True 
    Selection.FormulaHidden = False 
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 
    Range("E4").Select 
End Sub 

Edit 1: Dank Pav, hier eine bessere Lösung, die „wählt“, sondern arbeitet in der gleichen Art und Weise vermeidet:

Sub Makro2() 
    Cells.Locked = False 
    Cells.FormulaHidden = False 
    Range("E6").Locked = True 
    Range("E6").FormulaHidden = False 
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="xx2016" 
End Sub 
+1

Hallo Stefan, ich nehme an, dass das Makro aufgezeichnet ist, siehe bitte [meiden Sie] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)). – Pav

+0

Hallo Pav. Das ist wahr, es wurde nur aufgezeichnet, weil ich die korrekte Syntax nicht kannte, aber ich dachte, dass dies das Problem war. Aber Sie sind richtig, Auswahl sollte vermieden werden, daher werde ich eine bessere Lösung hinzufügen. Vielen Dank! – Stefan

Verwandte Themen