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的功能。
永远要知晓的是:计算机语言只是工具,业务能力才是主要的。