2017-06-14 4 views
0

Ich verwende den folgenden VBA-Code, um ein Häkchen/Häkchen anzuzeigen, wenn auf eine Zelle doppelt geklickt wird. Manchmal muss das Häkchen/Häkchen entfernt werden. Um das Häkchen zu entfernen, muss die Zelle erneut angeklickt werden. Sobald Sie auf das Häkchen/Häkchen doppelklicken, wird die Zelle leer angezeigt. Meine Frage ist; Wäre es möglich, das Wort "JA" anzuzeigen, anstatt die Zelle leer zu lassen?VBA Checkmark - Rückgabe 'Ja', wenn doppelt angeklickt und entfernt wurde

Oder als eine noch bessere Option, ist es möglich, den ursprünglichen Text (bevor die Zelle wurde sogar doppelt geklickt) in der Zelle beim Doppelklicken (Häkchen/Häkchen), anstatt als leer zurückgeben?

Ich hoffe, das macht Sinn! Vielen Dank im Voraus!

Unterhalb der VBA-Code, die ich für das Häkchen verwendet haben/tick:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    On Error GoTo 1 
    If Not Intersect(Target, Range("A2:Z200")) Is Nothing Then 
     Application.EnableEvents = False 
     If Target.Value = ChrW(&H2713) Then 
      Target.ClearContents 
      Cancel = True 
     Else 
      Target.Value = ChrW(&H2713) 
      Cancel = True 
     End If 
    End If 

    On Error GoTo 0 
1 Application.EnableEvents = True 

End Sub 

Antwort

0

das Wort, um "YES" ändern Sie die Zeile:

Target.ClearContents 

mit:

Target.Value = "YES" 

Voller Code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    On Error GoTo 1 
    If Not Intersect(Target, Range("A2:Z200")) Is Nothing Then 
     Application.EnableEvents = False 
     If Target.Value = ChrW(&H2713) Then 
      Target.Value = "YES" 
     Else 
      Target.Value = ChrW(&H2713) 
     End If 
     Cancel = True 
    End If 

    On Error GoTo 0 
1 Application.EnableEvents = True 

End Sub 
0

Dies wird den ursprünglichen Wert mit einem Häkchen ersetzen und dann den ursprünglichen Wert auf Wieder Klick wiederherstellen, aber es funktioniert nur für Textwerte und ändert nur das Aussehen der Zelle ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    If Not Intersect(Target, Range("A2:Z200")) Is Nothing Then 
     On Error GoTo haveError 
     Application.EnableEvents = False 
     If Target.NumberFormat Like ";;;*" Then 
      Target.NumberFormat = "General" 
     Else 
      Target.NumberFormat = ";;;" & ChrW(&H2713) 
     End If 
     Cancel = True 
    End If 

haveError: 
    Application.EnableEvents = True 

End Sub 
Verwandte Themen