Sie erklärte '... und erlauben Benutzern, ihre gewünschten Text eingeben.' Ich gehe von einem General Zellenformat für den vom Benutzer eingegebenen Text aus.
In dem Codefenster des Arbeitsblatt:
Option Explicit
'you can only double click a single cell so
'no worries about Target being more than one cell here
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Cells(5, "B"), Target) Is Nothing Then
'Cancel = True 'only if you want to disable 'in-cell' editing
On Error GoTo bm_Safe_Exit
With Target
If .Value2 = "please enter text here..." Then
Application.EnableEvents = False
.Clear
End If
End With
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
'there is a worry about Target being more than one cell here
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Cells(5, "B"), Target) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
Dim tmp As Variant
With Cells(5, "B")
If Not CBool(Len(.Value2)) Then
.Font.ColorIndex = 10
.Font.Italic = True
.Value = "please enter text here..."
.NumberFormat = "<@>"
Else
tmp = .Value
.Clear
.Value = tmp
End If
End With
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
'special cases when B5 is double-clicked but no input provided
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Cells(5, "B")
If Not CBool(Len(.Value2)) Then
Application.EnableEvents = False
.Font.ColorIndex = 10
.Font.Italic = True
.Value = "please enter text here..."
.NumberFormat = "<@>"
End If
End With
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
Dies scheint zu decken everything¹ ich es warf, während die Rechenzeit und Aufwand zu minimieren. Es bietet eine rudimentäre Fehlerkontrolle, um eine stabile Benutzerumgebung aufrechtzuerhalten.
¹ Bitte fragen Sie mich nicht, etwas zu erklären, ohne vorher Ihre eigene Forschung zu tun. Wenn Sie einen bestimmten Punkt finden, mit dem Sie Schwierigkeiten haben, werde ich mich bemühen, Ihnen zu helfen. Wenn Sie ein Konzept nicht verstehen können, dann nehmen Sie einen Kurs, es ist jenseits des Rahmens dieses Ortes, alles zu erklären.
Das ist gut! Es funktioniert, aber ich schütze mein Arbeitsblatt, damit niemand anders meine anderen Zellen bearbeiten oder ändern kann. Für diese spezifische b5-Zelle, wenn ich doppelklicke, sieht es so aus, als ob sie das Format dieser Zelle von der Freigabe in die Sperrung ändert. Gibt es einen Weg dahin? –
Ändern Sie die .Clear in .Value = "" –
Mate Sie sind eine Legende –