上一章给大家分享了Workbook的事件中的Workbook_BeforeClose事件的过程,该过程的使用方法,需要注意的事项,今天继续给大家分享关于Workbook事件中的Workbook_sheetchange事件过程和Workbook_BeforeSave事件的使用和注意事项。

Workbook_sheetchange事件过程的主要功能就是在工作薄中的任意内容发生改变的时候,就会自动运行程序事件。

好的下面我们就一起通过一个简单的事例给大家看看。

Workbook_sheetchange事件中有二个必需的参数:

第一个参数Sh:数据类型是object主要表示一个工作表

第二个参数Target:是Range数据类型,主要表示该的是哪个区域。

注意:这种事件的运行只会发生在数据工作表中,并不会发生在图表工作表中。

下面就开始一个很小的事例给大家先看看:

主要的目的就是让大家看到怎么才能触发该事件过程。

先看看运行结果:

VBA中BeforeClose, BeforeSave事件使用和举例-天天办公网

代码:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

MsgBox “工作簿中的数据发生改变,运行该程序”

End Sub

简单解释代码:

VBA中BeforeClose, BeforeSave事件使用和举例-天天办公网

下面我们再看一个事件BeforeSave,这个事件有二个参数都是布尔类型,而且都是必须的,

主要功能就是这个事件实在保存工作之前就发生。

下面要使用的数据表格:

主要作用就是在我删除一条数据的时候,我要触发该事件。

VBA中BeforeClose, BeforeSave事件使用和举例-天天办公网

运行结果:

VBA中BeforeClose, BeforeSave事件使用和举例-天天办公网

代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If WorksheetFunction.CountA(Worksheets(“Sheet2”).Range(“A2:A10”)) < 9 Then

MsgBox “工作簿中的指定工作表的数据条数发生变化不能保存,请检查!”

Cancel = True

End If

End Sub

简单解释代码:

VBA中BeforeClose, BeforeSave事件使用和举例-天天办公网