如何用vba双击直接复制excel单元内容而不是进入单元格编辑状态?

今天早上,微信群有人咨询

 

选中单元格后,双击不再编辑,而是复制,能不能用vba做到?

 

这个是可以的。

 

在excel中,如果直接双击单元格,会进入单元格的编辑状态,然后可以开始输入内容或者修改单元格的内容。

 

如果要双击单元格后不进入单元格的编辑状态,做其它事情,可以通过工作表的Worksheet_BeforeDoubleClick

事件捕获鼠标双击,让其不执行对应的操作,改为执行其它操作。

 

这个事件将在鼠标双击后被触发。

 

比如要双击时复制excel单元格内容而不进入单元格编辑状态,可以使用如下的代码:

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Target.Copy
    '将Cancel参数设置为True,则之前默认的双击动作不会产生,也就是不会进入单元格编辑状态
    Cancel = True
End Sub

 

其中Cancel 参数的意思是如果设置为True,则表示之前默认的鼠标双击操作后的动作不会执行,比如双击单元格会进入单元格的编辑状态,如果设置了True,则不会进入单元格的编辑状态。

 

通过这样的思路,可以让双击鼠标干其它很多事情,比如弹出一个对话框,或者执行一段其它程序等等。

       

发表评论