winfrom 如何实现自动点击事件_Vba对象事件,实现聚光灯、自动备份和密码验证后显示工作表...

看了本文标题,什么叫事件?

excel将下面叫做“数据”的工作表根据分类条件拆分成多个sheet工作表,表名为分类条件。

我的理解是发生了什么就执行一些相应的操作

可能比较难理解。下面我们就通过三个案例随事件对象加以了解。

1

案例1

题目:

聚光灯事件,点击任意或多个单元格,单元格所在行自动出现背景色。

结果如下图:

7ebe525eb12eb4f31312cd13c5964838.gif

分析:

点击单元格就自动实现聚光灯效果,自动执行代码就要用到事件对象

操作:

   1.点击Visual Basic,需要双击对应的表选择对象为worksheet,事件为selectionChange,如下图:

38299e22ccc45127dafa81d86f67ff34.png

代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  '每次操作执行前清除掉背景色    Cells.Interior.Pattern = xlNone '设置所选行的背景色    Selection.EntireRow.Interior.Color = 65535End Sub

如果你想把代码写到模板中。只需要在这里调用一下模板中的方法即可

'模板中sub jgd()'每次操作执行前清除掉背景色    Cells.Interior.Pattern = xlNone      '设置所选行的背景色      Selection.EntireRow.Interior.Color = 65535end sub'工作表中Private Sub Worksheet_SelectionChange(ByVal Target As Range)  '调用call方法   call jgdEnd Sub

2

案例2

题目:

对工作簿做修改后点击保存,工作簿数据自动备份,以时间起名字备份,方便找回历史数据

分析:

  1. 自动执行代码就要用到事件对象,所以自动备份又要用到事件对象了

  2. 案例1 是工作表的事件对象,这次是工作簿的事件对象

操作:

1.点击Visual Basic,需要双击thisworkbook,事件为beforesave,如下图:

74eb187078d7b3103b48e88c687abb4a.png

代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)'注意路径,d盘下面必须有data文件夹,否则报错ThisWorkbook.SaveCopyAs "d:\data\" & Format(Now(), "yyyymmddhhmmss") & ".xls"End Sub

3

案例3

题目:

制作验证密码,打开工作簿,自动弹出验证密码框,输入正确密码显示sheet表,否则关闭工作簿

分析:

1.这不是针对哪一张工作表,而是针对工作簿的事件对象

2.我们要隐藏除了登录页面的其他所有工作表

3.验证密码,正确显示对应的表,错误退出整个工作簿

代码:

'工作簿关闭时执行的操作,下次打开就会隐藏所有表Private Sub Workbook_BeforeClose(Cancel As Boolean)Dim sht As WorksheetFor Each sht In Sheets    If sht.Name <> "登录界面" Then    '隐藏表        sht.Visible = xlSheetVeryHidden    End IfNextEnd Sub'工作簿打开时的操作Private Sub Workbook_Open()Dim ii = InputBox("请输入密码")If i = "123" Then'显示表    Sheet1.Visible = xlSheetVisible    Sheet2.Visible = xlSheetVisible    Sheet3.Visible = xlSheetVisibleElseIf i = "456" Then'显示表    Sheet4.Visible = xlSheetVisible    Sheet5.Visible = xlSheetVisible    Sheet6.Visible = xlSheetVisibleElse    ThisWorkbook.CloseEnd If        End Sub

7fa5c3c38b864fe9b377d07d24e78d3a.png

思考:为什么不在打开时是隐藏表而在关闭时隐藏表?

答:如果打开时隐藏表因为执行代码需要时间,运行速度慢的话,用户打开表的一瞬间代码还没执行,可以看到表一闪而过。

总结

今天学到了工作表的selectionChange事件、工作簿的BeforeSave、BeforeClose、Open事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值