ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 12830|回复: 9

[求助] Worksheet_BeforeDoubleClick事件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-12 20:33 | 显示全部楼层 |阅读模式
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub
程序中cancel起什么作用,能具体举例说明吗?谢谢

TA的精华主题

TA的得分主题

发表于 2009-7-12 22:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
所有事件的Cancel参数,都用来取消该事件的下一步执行,就BeforeDoubleClick事件来说,正常情况下,将使Target 单元格进入编辑状态,如果在事件中指定Cancel参数为True,将禁止单元格进入编辑状态.

TA的精华主题

TA的得分主题

发表于 2009-7-12 22:43 | 显示全部楼层
之所以事件称之为:BeforeDoubleClick,就是说在你双击鼠标时系统执行原来的功能之前先响应用户设定的功能,然后再根据用户是否允许执行原来的功能(对于双击鼠标而言,就如清风大师所说的,原本是直接进入单元格的编辑状态),是否允许由Cancel参数来决定,这个参数默认是False,也就是不中断(挂起)原来的功能,如果用户设定Cancel=True,则是让系统知道,用户禁止执行其原来的功能。

TA的精华主题

TA的得分主题

发表于 2009-7-12 22:47 | 显示全部楼层
类似的还有
工作表事件: BeforeRightClick
工作簿事件:BeforeClose、BeforePrint、BeforeSave
窗体事件:BeforeDragOver、BeforeDropOrPaste等

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-13 07:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-2-20 09:14 | 显示全部楼层
学习了,谢谢,默认是false啊?

Dim rng As String
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, cancel As Boolean)
If target.Address = rng Then
If Len(target) = 0 Or target = "×" Then
target = "√"
Else
target = "×"
End If

不太明白
End If
End Sub

TA的精华主题

TA的得分主题

发表于 2011-10-15 15:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-1-30 14:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哪位高手帮看下下面的代码,在excel不能通过,我想每行一个记录都统计检测时间,时间记录咋c3里。谢谢!
着急!

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

If Target.Cells.Count = 1 And (Not Intersect(Target.Cells(1), Range("B1")) Is Nothing) Then
[B1] = "开始时间"
[C1] = Format(Now(), "Hh:mm:Ss")
[D1] = Timer [D1].Font.ColorIndex = 2
[B2:D3].ClearContents
End If

If Target.Cells.Count = 1 And (Not Intersect(Target.Cells(1), Range("B2")) Is Nothing) Then
[B2] = "结束时间"
[C2] = Format(Now(), "Hh:mm:Ss")
[D2] = Timer [D2].Font.ColorIndex = 2
[B3] = "总共用时"
[C3] = Format([D2] - [D1], "#0.00")
[D3] = "秒"
End If

Target.Offset(1, 0).Select

End Sub

TA的精华主题

TA的得分主题

发表于 2015-1-23 10:47 | 显示全部楼层
清风_ll 发表于 2009-7-12 22:36
所有事件的Cancel参数,都用来取消该事件的下一步执行,就BeforeDoubleClick事件来说,正常情况下,将使Target  ...

原来如此,不明觉厉~~~~~

TA的精华主题

TA的得分主题

发表于 2018-7-29 16:33 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 04:04 , Processed in 0.023417 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表