vue 鼠标点击事件_VBA代码解决方案第115讲:点击鼠标实现精准控制触发事件的VBA代码第二方案...

7dd113fd73ae7670b543f21c0e234eaf.png

大家好,我们今日继续讲解VBA代码解决方案的第115讲内容:工作表事件中,根据Target参数不同,实现精准控制触发事件的VBA代码第二方案。在上一讲中我们讲了利用Address的属性实现控制触发事件的方案,今日讲解第二方案,就是利用Column属性和Row属性的方法,哪种方法好呢?这就要靠写代码人员的偏好了,有的人喜欢第一种,有的人喜欢第二种,我自己偏好第二种,就是今天讲的这种了。

使用单元格的Column属性和Row属性可以将触发条件限制在某一区域内,下面有一个程序供大家参考。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Columns("B:B").ClearContents

If Target.Column = 1 And Target.Row < 80 Then

Target.Offset(0, 1) = Val(Target)

End If

End Sub

代码窗口:

dd3336f5cda400c6deb405c0405fac41.png

代码解析:当点击工作表的A1到A80单元格时,将在对应的B列显示A列的数值。

第3行代码使用Column属性将触发条件限制在第1列,使用Row属性将触发条件限制在第80行以内,也就是A1到A80的区域范围内。

运行,我们在工作表中A列和C列事先录入同样的数字,并把列的字体设置为白色隐藏,点击A列就会在B列出现A列的数字,类似于游戏效果。

8b11b349574aa5c8614669974438a67c.png

二 为了实现根据单元格选中范围精准的控制选择触发事件,我们需要对代码进一步优化。例如:当我们选中的是两个或两个以上连续单元格,而且是在一列时才能执行后续的代码(可以为两个连续个单格,也可以是多个连续单元格,但必须是为同一列),其它情况时则 Exit Sub 跳出过程,该如何写代码呢?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then

If Target(1).Resize(Target.Count).Address = Target.Address Then

MsgBox "可以执行你的以下代码"

Else

Exit Sub

End If

End If

End Sub

代码窗口:

e03848a645a16779eff3f6b4f8708400.png

代码解析: Target(1).Resize(Target.Count).Address 为以Target(1)扩展后的区域;如果和 Target.Address 一样就可以说明是一列的连续区域了。

备考:利用Resize属性对单元格进行扩张时,是以原单元格为起始点但包括原单元格本身的扩张。Resize属性的语法为:

Range对象.Resize(RowSize,ColumnSize)扩展特定的单元格,返回一个由参数RowSize和ColumnSize指定行列数的单元格区域。

其中:参数RowSize指定新单元格区域的行数。若省略该参数,则新单元格区域的行数与原来相同。Range('A1').Resize(1, 3).Select等价于代码(省略了第一个参数):Range('A1').Resize(, 3).Select都将选择单元格区域A1:C1。

参数ColumnSize指定新单元格区域的列数。若省略该参数,则新单元格区域的列数与原来相同。

运行:

f1b686363b40459fc78efe54f4f8a380.png

今日内容回向:

1 如何利用Column属性和Row属性实现精准的触发事件?

2 如何判断连续的单元格在整行或整列呢?

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

6ff1f5368e4f98f47058fb5dbe8a2987.png

ce2a81b83bc9b837e40dec71ecf956d2.png

f848e28b34d0ec191fac926c116f66d8.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值