现在我们来举一个Change事件的例子,Change事件就是指单元格的值发生改变之后所引发的事件。首先要注意Change是工作表事件,所以是在工作表工程中出现的,格式是这样的Private Sub Worksheet_Change(ByVal Target As Range),可以看到Change事件有一个参数Target,这个参数是一个Range对象,也就是要捕捉Change的范围。通常Target指的是整个工作表,所以如果是要捕捉特定范围内的改变的话要对Target变一些限定。
来看一个简单的例子,当你改变一个某个单元格的值时会跳出一个提示框:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox '你改变了单元格' & Target.Address & '的内容'
End Sub
在这里Target.Address返回的是单元格的地址。
我们说过Target是整个工作表,那么怎么限制这个范围呢,一般来说我们用if语句,如果判断出Target在我们的范围内,就执行if,否则跳过,这就要用到Target.Row和Target.Column两个属性了,分别表示变化单元格的行和列。例如你只希望在第一列的数值被修改时发出警告,而修改其他列则不发警告可以这样写:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
MsgBox '请不要修改A列内容'
End If
End Sub
Change事件在需要限制单元格输入内容时十分好用,例如限制输入文本格式、限制文本长度、限制修改等等,感兴趣的朋友可以自己研究一下,这里就不再过多举例。
联系客服