VBALesson 8 程序说明:体会一下Worksheet_Change()事件
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow, iCol As Integer
iRow = Target.Row
iCol = Target.Column
If iRow >= 2 And iCol = 2 And Target <> "" Then
Application.EnableEvents = False
Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2
Application.EnableEvents = True
ElseIf iRow >= 2 And iCol = 2 And Target = "" Then
Cells(iRow, iCol + 1) = ""
Else
Cells(iRow, iCol + 1) = ""
End If
End Sub
前几个教程都是用Worksheet_SelectionChange事件来举例子,大家应该能体会他是怎么一回事了吧。
这个教程就是要让你来体会什么是Worksheet_Chang()事件。因为这二个事件在VBA都是非常有用的,所以一定要了解。
简单的说,前者是你鼠标移动到那个单元格,就触发那个事件的执行。后者是要等到你点选的单元格,数据有了
改变才会触发事件的执行。二者执行的时机一前一后。
Target <> "" 是代表限定当前的单元格要是有数据的,才会执行以下三行的程序。
Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2,是你在B 栏输入数据时,C栏将可得到B栏二倍的数据。
Target = "" 是限定当前的单元格要是没有数据的,才会执行以下一行的程序。
Cells(iRow, iCol + 1) = "",是把C栏的数据清成空格。
Application.EnableEvents = False与Application.EnableEvents = True,这是个成双的程序,当你用了前者记得在执行其
他程序后要写上后面的程序。它的目的在抑制事件连锁执行。简单的说就是,在 B 字段所触发的事件,不愿在其它单元格再触发一个Worksheet_Change()事件。change miwa
观看本程序的方法:
粗体文字为程序,其它字体均为说明文字。
按快捷键 Alt+F11即可看到程序。
所以一定要了解。
前者记得在执行其
,不愿在其它单元格再触发另