将X放入单击的单元格(Microsoft Excel)
Wendy的工作表中包含大量数据,主要数据在C3:P312范围内。她希望有一个宏,如果她单击此数据范围内的单元格,将在该单元格中添加一个“ x”。
Excel不会将任何事件识别为单元格上的“单击”。
可能最接近的事件是SelectionChange事件,每次更改单元格选择时都会触发该事件。然后,事件处理程序可以检查以确保单元格选择在C3:P312范围内,然后在单元格中放置“ x”(如果是)。以下事件处理程序将执行此操作:
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
但是,这种方法存在一个问题:单击另一个单元格时,SelectionChange事件不仅会触发,而且如果您使用键盘从工作表中的一个单元格移动到另一个单元格,也会触发该事件。这意味着,如果您使用键盘在工作表上移动,则在转换的每个单元格中都会留下“ x”字符的结尾。
解决此问题的一种方法是更改触发单元格检查和更改的事件。尽管Excel没有“单击”事件,但存在“双击”事件。这意味着您可以更改双击的单元格,如下所示:
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
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(11681)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Putting_an_X_in_a_Clicked_Cell [将X放入点击的单元格中]。