VBA编程13.Workbook对象的事件

Posted 奔跑的金鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA编程13.Workbook对象的事件相关的知识,希望对你有一定的参考价值。

Workbook事件用于响应对Workbook对象所进行的操作。

【BeforeClose事件】

BforeClose事件用于响应窗口关闭的操作

在工程资源器中,双击“ThisWorkbook”对象,弹出"ThisWorkbook"窗口,并且选择Workbook,BeforeClose

并在窗口中写下如下代码:
【代码区域】

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If ThisWorkbook.Saved = False Then
    ThisWorkbook.Save
    MsgBox "工作簿已经发生变更,已经保存", vbOKOnly, "测试BeforeClose事件"
    Cancle = True
    End If
End Sub

接着保存即可。保存完毕之后,重新打开Excle,编辑后直接退出。则会出现如下结果

【结果展示】

                                                         

【BeforeSave事件】

BeforeSave用于响应保存操作,当保存操作发生时,将触发BeforeSave操作

与BeforeClose事件操作一致

【代码区域】

Private Sub workbook_BeforeSave(ByVal saveAsUI As Boolean, cancel As Boolean)
    sel = MsgBox("真的要保存对工作簿的修改吗?", vbYesNo, "测试BeforeSave事件")
    If sel = vbNo Then
     cancel = True
     End If
End Sub

【结果展示】

 

                                                              

 【WindowsActivate事件】

WindowsActivate事件用于保存响应激活窗口的操作,当激活窗口时,首先执行此函数内部的代码,然后执行激活窗口的后续操作

【代码区域】

Private Sub workbook_windowsActivate(ByVal wn As Window)
    MsgBox "欢迎使用Excle 2013电子表格处理程序", vbOKOnly, "测试windowsActivate事件"
End Sub
Private Sub workbook_windowresize(ByVal wn As Window)
    MsgBox "你已经调整了Excle 2013应用程序的窗口大小", vbOKOnly, "测试windowsActivate事件"
End Sub

如下调整窗口大小时:

【效果展示】

                                                                      

 

以上是关于VBA编程13.Workbook对象的事件的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL VBA 事件的问题。

VSCode自定义代码片段9——JS中的面向对象编程

在 VBA 中以编程方式确定 OnClick 事件的事件处理程序

高级搜索完成事件未在 VBA 中触发

Excel vba以编程方式将代码添加到工作表模块

VBA编程11.Application对象