VBA——事件(3)

2019-06-22  本文已影响0人  猛犸象和剑齿虎
GIF6.gif

工作薄事件写在thisworkbook中。

Private Sub Workbook_Open()
mon = Format(Now(), "m")
Sheets(mon & "月").Select
End Sub

------------------------------------

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True '禁用右键
End Sub

---------------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Month(Now()) & "月" <> ActiveSheet.Name Then
    MsgBox "不能打印"
    Cancel = True
Else
    MsgBox "能打印"
    Cancel = False
End If
End Sub

①打卡工作簿后自动激活当前月份的工作表
②禁用右键事件
③工作表名称与当前月份不一致时禁止打印

事件中的Cancel:

默认为false,在完成事件内代码效果后,接着继续完成操作的后续效果。
而为true时,在完成事件内代码效果后,终止当前操作的后续效果。

相当于给用户控制事件提供一个开关。可以把用户自定义事件代替默认事件
没有Cancel就是说不给你这个控制权限,一旦一始就要按流程结束。

单纯的事件并不好用,尤其是excel与wps切换时,总会出现种种问题。兼容性不是很好,本着实用的目的,EXCELvba学会录制宏,工作簿与工作表的基本操作,数组,字典,正则表达式,了解一些控件,图形化操作,基本上到达了初级阶段水平,可以行走江湖了。
当然EXCELvba这种语言知道的知识冰山一角,它还有许多的接口,比如word接口,ACCESS接口等,大大拓展了VBA的功能。
永远要知晓的是:计算机语言只是工具,业务能力才是主要的。

上一篇下一篇

猜你喜欢

热点阅读