|
这是在常见问题区一个朋友遇到的情况,代码为:Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Target.Value
If Target.Column = 2 And Target.Row > 1 And Target.Row < 12 Then
[A1].Select
MsgBox Target.Value
End If
End Sub
此时点击b2单元格,连续出现三个MsgBox 分别是2,1,2
朋友认为出现两个才对,我的理解是应该出现三个,因为,点击b2,选区发生变化执行MsgBox Target.Value语句,然后由于b2,满足if语句,a1被选中,选区再次发生变化,第一条的MsgBox Target.Value语句会再次被执行,然后执行后面一个MsgBox Target.Value语句。也就是说最后一条MsgBox Target.Value重复。我的问题是为什么最后msgbox显示为2,现在定位在a1位置上,a1的值是1。那么显示2、1、1才合理呀。
1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
2. MsgBox Target.Value
3. If Target.Column = 2 And Target.Row > 1 And Target.Row < 12 Then
4. [A1].Select‘ 这里 又触发 选取事件 跳到1。,然后才 执行 没完成的 下面那句
5 . MsgBox Target.Value
6. End If
7. End Sub
你可以按F8 调试 一下
7.End Sub
|
|