Richten Sie die Datenüberprüfung ein
Sie möchten die Datenüberprüfungsfunktion in Excel verwenden, um Zellen auf bestimmten Text zu beschränken. In Ihrem Fall: "Test1", "Test2" und "Test3"
- Wählen Sie die Zellen aus, die nur die Werte "Test1", "Test2" und "Test3" akzeptieren sollen
Auf den Daten Registerkarte in den Tool Datengruppe, klicken Sie auf die Datenüberprüfung Schaltfläche.
Wählen Sie in der Dropdown- Liste Zulassen: die Option Liste aus
Im Quelle: Feld geben Sie Test1, Test2, Test3
Klicken Sie auf OK , um die Änderungen zu übernehmen.
Zu diesem Zeitpunkt ist jeder Zelle, die Sie in Schritt 1 ausgewählt haben, eine Dropdown-Liste zugeordnet. Benutzer der Tabelle können nur Test1 , Test2 oder Test3 eingeben . Wenn sie versuchen, etwas anderes einzugeben, wird die folgende Fehlermeldung angezeigt:
Sie können den Fehlermeldungstext, falls gewünscht, anpassen auf dem durch Klicken auf Fehleralarm Registerkarte in Schritt 4 von oben.
Kopieren / Einfügen über datenvalidierte Zellen verhindern
Dies funktioniert hervorragend, AUSSER wenn jemand Inhalte über die Zellen fügt. Die einzige Möglichkeit, dies zu verhindern, besteht darin, ein Makro zu schreiben, das Aktualisierungen der Zellen erkennt, feststellt, ob die Datenüberprüfung für die Zellen aktiviert ist, und dann das Einfügen zu verweigern, wenn dies wahr ist.
- Wählen Sie alle Zellen mit Datenüberprüfung aus und nennen Sie sie DataValidationRange . Sie können Zellbereiche benennen, indem Sie den Namen links von der Formelleiste eingeben, in der sich die Zelladresse befindet.
- Fügen Sie im Codemodul für das Arbeitsblatt (z. B. Sheet1) den folgenden Code hinzu:
Private Sub Worksheet_Change (ByVal Target As Range)
'Hat der Validierungsbereich noch eine Validierung?
If HasValidation (Range ("DataValidationRange")) Then
Sub beenden
Sonst
Anwendung.Undo
MsgBox "Fehler: Sie können keine Daten in diese Zellen einfügen." & _
"Verwenden Sie stattdessen das Dropdown-Menü, um Daten einzugeben.", VbCritical
End If
End Sub
Private Funktion HasValidation (r) As Boolean
'Gibt True zurück, wenn jede Zelle in Range r die Datenüberprüfung verwendet
On Error Resume Weiter
x = r.Validation.Type
Wenn Err.Number = 0, dann HasValidation = True, sonst HasValidation = False
Funktion beenden
Leider ist VBA der einzige Weg, um zu verhindern, dass jemand über die Zellen klebt. Dies war von Anfang an ein Problem bei der Datenüberprüfung in Excel. Hoffe es hilft so oder so.
Eine einfachere Lösung wäre, das Einfügen in die Arbeitsmappe ganz zu deaktivieren. Die Lösung dafür habe ich gerade hier gefunden: http://www.vbaexpress.com/kb/getarticle.php?kb_id=373
quelle