Excel ermöglicht das Löschen von Zelleninhalten von Zellen mit Datenvalidierung

433
Jonny Wright

Ich habe ein Arbeitsblatt, in dem nur Zellen, die bearbeitet werden sollen, entsperrt sind, und das gesamte Arbeitsblatt wird dann geschützt. In einer der Zellen, in denen die Bearbeitung zulässig ist, sind Datenvalidierungssätze festgelegt, die auf einer Liste mit zwei Elementen basieren. Die Datenvalidierung ist so eingerichtet, dass ein Listund der entsprechende Bereich für den Source.

Die Validierung funktioniert bis zu einem gewissen Punkt, indem die Auswahl einer der beiden Optionen in der Dropdown-Liste akzeptiert wird und die Eingabe eines nicht in der Liste enthaltenen Werts abgelehnt wird.

Das Problem, das ich habe, ist, dass Excel mir erlaubt, den Inhalt der besagten Zelle zu löschen (was ich nicht möchte - ich möchte, dass es immer einen der beiden Werte in der Liste gibt). Innerhalb des Datenüberprüfungsfensters habe ich versucht, das Kontrollkästchen zu aktivieren oder zu Ignore blankdeaktivieren, was anscheinend keine Auswirkung hat.

Im Idealfall würde ich das gerne ohne Notwendigkeit tun VBA, aber ich werde zugeben, wenn es der einzige Weg ist.

Hier ist ein Link zu einem Beispiel Arbeitsmappe - für Option4x, dürfen Sie eine der Drop - Down - Optionen zur Auswahl, aber nicht erlaubt zufälligen Text einzugeben. Sie dürfen jedoch auch den Inhalt der Zelle löschen (was ich nicht möchte).

Bild

1
Könnten Sie den Link der Tabelle zum besseren Verständnis hochladen oder bereitstellen? Rajesh S vor 6 Jahren 0
@RajeshS hat gerade einen Link zu einer Beispielarbeitsmappe hinzugefügt und einen Screenshot hinzugefügt Jonny Wright vor 6 Jahren 0
Meine erste Reaktion Was mir aufgefallen ist, dass Data Rage C5: L15 ungeschützt ist. In Spalte C hat Zelle C9 eine Dropdown-Liste, die ordnungsgemäß funktioniert. Der eigentliche bearbeitbare Bereich ist D6: L12. Das Rest-Arbeitsblatt ist geschützt. Jetzt sag mir das Problem !! Rajesh S vor 6 Jahren 0

1 Antwort auf die Frage

1
Rajesh S

Data Validation prüft nur, ob die eingegebenen Daten den Regeln / der Liste entsprechen oder nicht. Da die Zelle bearbeitbar ist, können Sie mit Excel die eingegebenen Daten löschen, jedoch nicht aus der Liste schreiben.

Wenn Sie nicht zulassen, dass die überprüften Daten gelöscht werden, müssen Sie die Löschtaste deaktivieren. Der unten beschriebene Beispielcode hilft Ihnen, die Übungen zu verhindern.

Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Address <> "$C$9" Then Exit Sub If Len(Target.Value) = 0 Then Application.EnableEvents = False Application.Undo MsgBox "You can't Delete,,,!" Application.EnableEvents = True End If  End Sub 

Hinweis: Da Excel keine Funktion hat, kann dies die Zelle verhindern. In diesem Fall funktioniert nur VBA.

Danke - der bereitgestellte Code funktionierte nicht so, wie ich gehofft hatte, führte mich aber in die richtige Richtung. Schade, dass die Funktionalität nicht eingebaut ist, aber wenn es so ist, dann muss es so sein. Ich habe eine Bearbeitung vorgeschlagen und werde als akzeptiert markieren, wenn die Bearbeitung genehmigt ist. Jonny Wright vor 6 Jahren 0
Schön, von Ihnen @JonnyWright zu hören. Bei der Datenvalidierung können wir das Kontrollkästchen NICHT VERLASSEN, um den CELL Blank freizugeben. Im Falle von NOT DELETE ist jedoch die Deaktivierung der Tasten die einzige Option. Rajesh S vor 6 Jahren 0