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