Ich habe ein paar andere gelesen, die mein Problem teilweise gelöst haben, aber ein kompletter VB-Amateur kann ich nicht dazu bringen, dass dies funktioniert. Das fragliche Arbeitsblatt ist geschützt, also habe ich versucht, einen Befehl zum Schutz/Schutz in den Code einzufügen. Es wird am Anfang den Schutz aufgehoben, aber dann Probleme auftreten. Jede Hilfe wäre willkommen.Runtime 1004 Problemumgehung - Schutz/Schutz in Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
Sheet1.Unprotect Password:="mypassword"
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B11")) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = "Product Name (IE Product123)"
Target.Font.ColorIndex = 15
Case Else
Target.Font.ColorIndex = 1
End Select
End If
If Not Intersect(Target, Range("B12")) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = "Version "
Target.Font.ColorIndex = 15
Case Else
Target.Font.ColorIndex = 1
End Select
End If
Sheet1.Protect Password:="mypassword"
End Sub
Sie verlassen das Arbeitsblatt ungeschützt 'If Target.Cells.Count> 1'. – Jeeped
In diesem Fall ... warum sollten Sie das Arbeitsblatt überhaupt ungeschützt machen? Wenn der Benutzer B11: B12 ändern kann, dann kann auch workheet_change. – Jeeped
Also mein Arbeitsblatt ist ein Formular. Mein ursprüngliches Ziel war, dass 2 dieser Zellen "B11" und "B12" einen "Standard" -Grautwert haben. Wenn Text eingegeben wird, erscheint er schwarz. Wenn es gelöscht wird, kehrt es zu dem ursprünglichen ausgegrauten Wert zurück. Dies funktionierte ziemlich gut, bis es geschützt wurde, so dass nur bestimmte Zellen ausgewählt/bearbeitet werden können. Wenn es geschützt wird, erzeugt es den Laufzeitfehler und der Code funktioniert nicht mehr. Ich bin mir sicher, es gab wahrscheinlich eine elegantere Lösung für den Anfang, aber ich arbeite mit begrenztem Wissen :(Aus der Forschung konnte ich sehen, die beste Lösung war das Hinzufügen der Schutz/Reprotect in –