Supriyo询问VBA中是否有鼠标事件处理程序。他希望在单击该单元格时在该单元格中插入一个值。

执行此操作的标准方法是使用SelectionChange事件。每当工作表中的选择更改时,都会触发该事件。该事件不仅会在单击单元格时触发,还会在有人按下光标控制键(导致选择另一个单元格)时触发。

例如,假设您希望单元格B5每次被选择时都包含值10。为此,可以使用以下命令:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("B5")) Is Nothing Then _       Range("B5").Value = 10 End Sub

将此代码添加到VB编辑器的“项目资源管理器”区域中的一个图纸对象中。双击要应用事件处理程序的工作表,然后将宏添加到结果代码窗口中。

触发SelectionChange事件时,会将目标(选定的单元格区域)传递给处理程序。然后宏检查目标范围是否包含单元格B5,如果包含,则将值10填充到单元格B5中。如果要确保仅选择了B5(单个单元格),则宏仅将信息填充到B5中,可以使用以下版本的宏:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("B5").Address Then _       Range("B5").Value = 10 End Sub

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12514)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: