VBA事件参数Target和Cancel

论坛 期权论坛 期权     
何故深思高举   2019-7-28 23:17   3780   0



例1:当右键单击Excel某个工作表时,Excel弹出一个对话框,告知所单击的单元格地址。
第一步



第二部




第三步(效果图)


代码如下


  1. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
复制代码
  1.     MsgBox "你右键单击的单元格的地址是" & Target.Address
复制代码
  1. End Sub
复制代码
修改后的版本
这样修改后,右键将不会触发快捷菜单的事件
这将归功于Cancel=true这个语句



  1. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
复制代码
  1.     Cancel = True
复制代码
  1.     MsgBox "你右键单击的单元格的地址是" & Target.Address
复制代码
  1. End Sub
复制代码
  1. [/code]
  2. 实战演练:将Excel作为检查表使用。在检查人员出勤情况时,希望在对照Excel表格点名时,在该人名字后打一个“√”,再次双击该单元格,“√”消失。
  3. [list][*][*][*][*][*][*][*][*][/list][code]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
复制代码
  1.     If ActiveCell.Value = "√" Then
复制代码
  1.         ActiveCell.ClearComments
复制代码
  1.     Else
复制代码
  1.         ActiveCell.Value = "√"
复制代码
  1.     End If
复制代码
  1. End Sub
复制代码
[code][/code]下面看看Target和Cancel
事件参数Target和Cancel
Target:事件发生时所涉及的对象
Cancel:参数为True/Flase
当cancel为true时,该事件代码段将不再执行Excel感知到的某种时间的默认行为。
当这样设置时,默认快捷菜单将不再弹出。
下一期将介绍VBA实战,喜欢就点个关注吧!
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP