十七讲 excel工作表事件程序

excel事件程序和宏程序的区别

a.编写位置不同。事件程序只能在工作表的代码窗口编写,不可以在模块窗口中编辑,宏程序可以放在模块窗口。b.事件程序是自动运行的,不需要刻意去运行。

1.SelectionChange 单元格发生选取改变而触发的程序

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox 123

End Sub

’target 是一个传递的通道,以不变应万变。


应用:比如说不想让别人修改我的sheet2表,也不允许复制。可以实现保护工作表的功能。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> "$a$1" Then

[a1].Select

End If

End Sub

2.change

编辑某个单元格会触发程序的运行

Private Sub Worksheet_Change(ByVal Target As Range)

MsgBox 123

End Sub

‘只要编辑sheet工作表中的单元格,就会触发运行。change是反复运行的。使用change事件程序时候需要注意的地方。

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False '将事件程序暂时屏蔽掉

Target = Target * 2

Application.EnableEvents = True

End Sub

3.worksheet active

下面这段代码有问题,暂时没发现

Private Sub Worksheet_Activate()

If ActiveSheet.Name = "Sheet3" Then

Sheets("第十六讲").Select

End If

End Sub

4. calculate 监测公式发生改变

Private Sub Worksheet_Calculate()

MsgBox "公式值发生改变"

End Sub

5.deactive 当离开该工作表时候就会运行该程序

Private Sub Worksheet_Deactivate()

MsgBox "谢谢使用sheet3"

End Sub

6.followHyperlink

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

MsgBox Target.Address

End Sub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 13,767评论 1 20
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,865评论 6 49
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 坚持分享第31天 今天中午,我吃完饭下楼和小伙伴们一起打枪战,我拿这自己的小手枪,下楼和小伙伴们一起玩耍,不过我们...
    分享坚持大师阅读 315评论 0 1