Einfügen eines X in eine angeklickte Zelle (Microsoft Excel)
Wendy hat ein Arbeitsblatt mit ziemlich vielen Daten, wobei die Hauptdaten im Bereich C3: P312 liegen. Sie hätte gerne ein Makro, das, wenn sie auf eine Zelle in diesem Datenbereich klickt, ein „x“ in die Zelle einfügt.
Es gibt kein Ereignis, das Excel als „Klick“ auf eine Zelle erkennen kann.
Möglicherweise ist das nächste Ereignis das SelectionChange-Ereignis, das jedes Mal ausgelöst wird, wenn sich die Zellenauswahl ändert. Der Ereignishandler könnte dann überprüfen, ob die Zellenauswahl im Bereich C3: P312 liegt, und dann ein „x“ in die Zelle einfügen, falls dies der Fall ist. Der folgende Ereignishandler führt dies aus:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing End Sub
Bei diesem Ansatz gibt es jedoch ein Problem: Das SelectionChange-Ereignis wird nicht nur ausgelöst, wenn Sie auf eine andere Zelle klicken, sondern auch, wenn Sie mit der Tastatur im Arbeitsblatt von einer Zelle zur nächsten wechseln. Dies bedeutet, dass Sie, wenn Sie sich mit der Tastatur im Arbeitsblatt bewegen, in jeder Zelle, die Sie übertragen, eine Spur von „x“ -Zeichen hinterlassen.
Eine Möglichkeit, dies zu umgehen, besteht darin, das Ereignis zu ändern, das die Überprüfung und Änderung der Zellen auslöst. Während Excel kein „Klick“ -Ereignis hat, gibt es ein „Doppelklick“ -Ereignis. Dies bedeutet, dass Sie die Zelle, auf die Sie doppelklicken, wie hier gezeigt ändern können:
Private Sub Worksheet_BeforeDoubleClick( _ ByVal Target As Range, Cancel As Boolean) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing Cancel = True End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3378) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: