我们可以使用Worksheet_Change& Worksheet_SelectionChange在同一工作表中

时间:2016-02-09 17:16:22

标签: excel excel-vba vba

我们可以使用Worksheet_Change& Worksheet_SelectionChange在同一工作表中。 如果是,优先级是什么?

谢谢

2 个答案:

答案 0 :(得分:2)

当然可以:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print Target.Row
End Sub

Private Sub Worksheet_SelectionChange(ByVal myTarget As Range)

Debug.Print myTarget.Address
End Sub

选择更改首先发生,因为您在更改单元格之前更改了选择。

答案 1 :(得分:1)

您可以通过在工作表的VBA中添加以下内容来测试这种超级简单:

Private Sub Worksheet_Change(ByVal Target As Range)
  MsgBox "Change"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  MsgBox "selection change"
End Sub

除非您在单元格中输入新文本并按Enter键移动到新单元格,否则您会发现事件通常不会同时触发。在这种情况下,"改变"事件将首先触发,然后选择更改"会开枪。