jqgrid 单元格绑定点击事件_VBA代码解决方案第114讲:工作表事件中,如何根据Target参数,实现不同的触发过程...

0fc4c23aa7b28f8abab10e2479ed18d0.png

大家好,我们今日继续讲解VBA代码解决方案的第114讲内容: 在工作表事件中,如何根据Target参数的不同,实现不同触发过程。

在工作表的SelectionChange事件中,参数Target代表新选定的区域。在实际应用中可以使用Target参数将触发工作表事件的区域限制在一定的范围内,如下代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address(0, 0) = "A1" Then

MsgBox "你好,你选种了A1单元格"

End If

End Sub

代码解析:当选择工作表A1单元格时显示一个消息框。

第2行代码使用Address属性返回所选单元格的区域引用,当返回的区域引用是“A1”时触发SelectionChange事件,显示一个消息框。

为了更深入的了解整个事件的过程,我们需要对上面代码的意义再深入的理解,我之前讲过,我的文章每一讲都是一个积木。供大家利用。作为使用者要弄懂每块积木的意义,才能利用得心应手,只是一知半解很难达到灵活应用的目的。

有的朋友可能注意到了:上面的代码中Target.Address(0, 0),为什么是这种写法呢?这里给大家实测讲解一下,如下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Target.Address: " & Target.Address & Chr(13) _

& "Target.Address(0,0): " & Target.Address(0, 0)

End Sub

我们实测一下:代码窗口

b1909bc792e55218644ec538e54a83ba.png

运行:

007c62829982d366482ae330185980e8.png

当我点击“H7”时 Target.Address =$h$7 而 Target.Address(0, 0) =“H7”明白了吧,一个是相对引用,一个是绝对引用。

对于一个单元格的Address属性,我再做下面的讲解:

Expression.Address(RowAbsolute,ColumnAbsolute,ReferenceStyle,External,RelativeTo)

其中:

a) Expression 一个表示 Range 对象的变量。

b) RowAbsolute 可选 Variant 如果为 True,则以绝对引用返回引用的行部分。默认值为 True。

c) ColumnAbsolute 可选 Variant 如果为 True,则以绝对引用返回引用的列部分。默认值为 True。

d) ReferenceStyle 可选 XlReferenceStyle 引用样式。 默认值为 xlA1。

e) External 可选 Variant 如果为 True,则返回外部引用。如果为 False,则返回本地引用。默认值为 False。

f) RelativeTo 可选 Variant 如果 RowAbsolute 和 ColumnAbsolute 为 False ,并且 ReferenceStyle 为 xlR1C1 ,则必须包括相对引用的起始点。此参数是定义起始点的 Range 对象。

下面我们看实例应用:

使用单元格的Address属性可以将触发条件限制在固定的区域内,例如,当我们单击A列的单元格时,弹出录入对话框1,当点击B列单元格时,弹出对话框2,这两个对话框是不同的录入模式,该怎么处理呢?

代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Left(Target.Address(0, 0), 1) = "A" Then

UserForm1.Show

End If

If Left(Target.Address(0, 0), 1) = "B" Then

UserForm2.Show

End If

End Sub

代码截图:

6bf2ae09c8fa7720f375e95c90924b7f.png

运行,点击A列:

9f480dbf9e3ec6e73326f10a0e58ad61.png

点击B列:

e10bc0e247a915a60cc8b630b75b8314.png

这样,当你鼠标点击的位置不同,弹出的人机对话框也是不同的,实现了不同的数据录入模式。

今日内容回向:

1 如何实现根据Target参数不同,触发不同的过程?

2 单元格Address的属性是否清楚呢?

《VBA代码解决方案》终于可以和大家见面了,是我将一些非常实用的VBA内容结集成册,PDF文件,可以从中直接查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

a7f5f23a7ebf423e157292e5e0db371b.png

1c2866bd33dfa1c22d33822a526a4ca0.png

1a830d39e976713fd3e728684e77e7ce.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值