Ich versuche, Benutzer zu beschränken, um einen 12-stelligen Wert für eine ID einzugeben. Ich verwende folgendes Makro dafür;Excel-Validierung für mehrere Werte einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column <> 1 Then GoTo Exit_Sub
If Len(Target.Value) <> 12 Then
MsgBox " Plese enter exactly 12 characters!!"
Application.Undo
End If
Exit_Sub:
Application.EnableEvents = True
End Sub
Dies funktioniert ERFOLGREICH für eins nach dem anderen Wert. Wenn ich "1234" kopiere und versuche, es einzufügen, funktioniert es nicht. Aber wenn ich Paste in einer Menge, d. H. Für mehrere Zeilen, kopiere. Dann bricht alles und die Validierung funktioniert nicht. Bitte vorschlagen.
Danke, Sid
Warum nicht Data Validation verwenden? –
Zweite Datenvalidierung, aber zu Ihrem Makro, wenn Sie mehrere Zellen ausgewählt haben, dann ist Ihr Ziel ein Bereich von mehreren Zellen, so dass Sie target.value nicht direkt verwenden können, müssen Sie etwas wie 'für jedes c in Ziel 'verwenden und überprüfen auf einer Zelle für Zelle Basis. Oder verwenden Sie eine Array-Formel, um die maximale und minimale Länge der Zeichenfolge zu überprüfen [siehe Beispiel] (http://stackoverflow.com/questions/23678242/how-can-i-get-the-length-of-the-longest-string -in-einer-Spalte-Excel) – gtwebb