Excel - Verhindert, dass Benutzer Datenüberprüfungsbereiche in Excel einfügen

0

Wie ändere ich den folgenden Code, um mehrere benannte Bereiche zu berücksichtigen?

Private Sub Worksheet_Change(ByVal Target As Range)
    'Does the validation range still have validation?
    If HasValidation(Range("DataValidationRange")) Then
        Exit Sub
    Else
        Application.Undo
        MsgBox "Error: You cannot paste data into these cells." & _
        "Please use the drop-down to enter data instead.", vbCritical
    End If
End Sub

Private Function HasValidation(r) As Boolean
    'Returns True if every cell in Range r uses Data Validation
    On Error Resume Next
    x = r.Validation.Type
    If Err.Number = 0 Then HasValidation = True Else HasValidation = False
End Function
Tom
quelle

Antworten:

0

Die ursprüngliche Veröffentlichung dieses Codes beim Superuser hat diese Frage beantwortet: Wählen Sie alle Zellen mit Datenüberprüfung aus und geben Sie der Gruppe einen benannten Bereich. In diesem Fall DataValidationRange. Dies funktioniert auch dann, wenn die Zellen Teil anderer benannter Bereiche sind.

Das Testen dieses Codes mit einer Excel 2010-Arbeitsmappe verursachte jedoch einen Excel-Absturz auf meinem System. Sie möchten, dass Ihre Datei vor dem Testen gespeichert wird.


quelle