Wie kann die Datenüberprüfung beim Kopieren und Einfügen von Daten fehlschlagen?

12829
Rahul Singh

Ich verwende die Datenvalidierung für eine Spalte anhand einer vordefinierten Liste.

Es kann jedoch leicht getäuscht oder umgangen werden, indem (Strg + V) -Daten aus einer anderen Quelle eingefügt werden.

Wie kann ich also schützen, dass Benutzer keine falschen Daten eingeben können oder außerhalb meiner Validierungsliste.

Vielen Dank

2
Wie schützen Sie es jetzt? gronostaj vor 11 Jahren 0

3 Antworten auf die Frage

1
Zac B

Versuchen Sie die Verwendung von Einfügen-Hooks / Handlern, um dies zu verhindern.

Es ist eine Art Hack, aber in Ihrer VBA können Sie benutzerdefinierte Funktionen an die häufig verwendeten Tasten- / Klick-Aktionen binden, die "Einfügen" -Ereignisse auslösen. Diese benutzerdefinierten Funktionen können auf die durch das Einfügen betroffene Auswahl zugreifen und sofort Überprüfungsregeln / benutzerdefinierte Untersübe auslösen. Beispiele für diese Funktionalität finden Sie in diesem Handbuch (insbesondere im Abschnitt "Validierung").

Dies hindert die Benutzer nicht daran, ungültige Daten an erster Stelle einzufügen, sondern führt dazu, dass ungültige Daten sofort widerrufen werden. Dies kann für Ihre Zwecke nahe genug sein.

1
Andy G

Wenn das Abfangen von Einfügeereignissen komplex erscheint, können Sie einfach das BeforeSaveEreignis der Arbeitsmappe verwenden. Überprüfen Sie in diesem Fall die Werte, und brechen Sie die Einstellung Speichern durch, wenn sie falsch sind

Cancel = True 

Sie können das DeactivateEreignis eines Arbeitsblatts verwenden, dies bietet jedoch keine einfache Möglichkeit, die Deaktivierung abzubrechen. Es kann jedoch eine Warnung MsgBoxangezeigt werden.

0
game writer guy

Rahul, ich arbeite gerade an einem ähnlichen Problem. Nachdem ich einige Excel-Foren und die MS-Hilfetafeln zu diesem Problem gelesen hatte, kann ich Ihnen sagen, dass es wirklich ZWEI Probleme gibt:

A) Ein Standardkopie-Einfügen in Excel kopiert die Validierungen von der Quelle zum Ziel. Wenn Sie keine Sicherheitsvorkehrungen haben, wird die Validierung aus Ihrer speziellen Spalte gelöscht, wenn ein Benutzer in sie einfügt. B) Excel führt nur eine Überprüfung für einzelne Zellen und nicht für Einfügevorgänge durch. Ziemlich schwach.

Ich kann das Problem A für Sie lösen. Ich denke, Sie benötigen VBA, um eine benutzerdefinierte Validierung für Problem B durchzuführen. Siehe die Links unten in diesem Beitrag für einige Ideen. Ich bin kein Profi bei der VBA, also kann ich nicht wirklich sagen, was für Sie funktionieren wird.

Für Problem A: Wechseln Sie zur Registerkarte Überprüfung und aktivieren Sie den Schutz entweder auf Blatt- oder Arbeitsmappenebene :) Ich habe noch nicht gesehen, dass diese Lösung von jemandem erwähnt wurde, aber es funktioniert wirklich gut. Wenn der Schutz aktiviert ist, kann der Benutzer die Überprüfungen in Ihrer Spalte nicht mit einem Einfügen überschreiben.

Die Standardrechte für einen Benutzer in einem geschützten Blatt sind ziemlich gering. Wenn Ihre Benutzer viele Rechte benötigen, z. B. das Löschen von Zeilen, aktivieren Sie einfach die erforderlichen Rechte im Dialogfeld "Schutz", indem Sie die Kontrollkästchen aktivieren. Ich habe alles außer "Hyperlinks einfügen" aktiviert und kann die Validierung immer noch nicht überschreiben, wenn der Schutz aktiviert ist.

Hier sind einige relevante Links für Sie:

http://www.mrexcel.com/forum/excel-questions/64596-data-validation-why-does-not-work-henwhen-pasting-values.html

http://spreadsheetpage.com/index.php/tip/ensuring_that_data_validation_is_not_deleted/

https://social.msdn.microsoft.com/Forums/office/de/961e3921-5fd2-430e-bf50-aecb75a4fe05/excel-cell-data-validations-fails-on-copypaste

http://www.mrexcel.com/forum/excel-questions/519807-pasting-into-cell-data-validation.html