VBA——事件(2)

单纯的工作表事件和工作簿事件我在实际运用中代码不知道为什么不是特别的稳定(时灵时不灵)。而事件结合控件运用还是比较实用的。

工作表事件的选择区域改变事件(selectionchange)

GIF2.gif
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$3" Or Target.Address = "$B$3" _
Or Target.Address = "$C$3" Or Target.Address = "$D$3" Then
Target.Value = Target.Value + 1
End If
End Sub

工作表离开事件(Worksheet_Deactivate)

GIF3.gif
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = "当前选择的区域是:" & Target.Address(0, 0)
End Sub
------------------------------------------------------
Private Sub Worksheet_Deactivate()
Application.StatusBar = ""
End Sub

①statusbar状态栏
②target.address(0,0)表示相对引用的地址

  • 同样不用target方法用selection也行。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = "当前选择的区域是:" & Selection.Address(0, 0)
End Sub
-------------------------------------------------------------
Private Sub Worksheet_Deactivate()
Application.StatusBar = "当前选择的区域是:"
End Sub

防止工作表改名

GIF4.gif
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheet3.Name <> "成绩表" Then Sheet3.Name = "成绩表"
End Sub

限定工作区域与自动写入工作表名称

GIF5.gif
Private Sub Worksheet_Activate()
For Each sht In Sheets
    If sht.Name <> "全年月份" Then
        k = k + 1
        Sheets("全年月份").Cells(k, 1) = sht.Name
    End If
Next
End Sub
---------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [a1:c12]) Is Nothing Then
    MsgBox "你只能在[a1:c12]区域中工作!"
    [a1].Select
End If
End Sub

①Worksheet_Activate激活事件
②intersect()交集函数

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

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 14,679评论 1 20
  • VBA订制工具栏 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴写字的地方阅读 6,702评论 0 0
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 22,041评论 6 49
  • 事件程序:事件,操作也。事件程序,因操作而触发自动运行程序。编写位置:工作表和工作表的代码区 1、Change 事...
    lydark阅读 4,778评论 0 0
  • excel事件程序和宏程序的区别 a.编写位置不同。事件程序只能在工作表的代码窗口编写,不可以在模块窗口中编辑,宏...
    肉丸子豆阅读 5,176评论 0 0