|

楼主 |
发表于 2003-8-19 17:07
|
显示全部楼层
VBALesson 8
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()事件。 |
|