Excel 2007 VBA:事件在相同的事件过程结束后重新启动

时间:2015-04-01 18:05:42

标签: excel vba excel-vba events

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
    Application.EnableEvents = False

    ' Some code

    Application.EnableEvents = True

End Sub

"一些代码"用于在用户在某个单元格中粘贴某个值时进行陷阱。如果在复制操作之后粘贴,则过程可以正常工作。如果粘贴值在切割操作之后,则在执行到达End Sub之后,程序再次启动,我无法确定发生了什么变化导致重新启动。

使用数据验证格式化源和目标单元格。

1 个答案:

答案 0 :(得分:1)

试试这个,您可以看到第一个被触发的事件来自被切割的范围,第二个事件来自粘贴目的地。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

    Application.EnableEvents = False

    Debug.Print Sh.Name, Source.Address()

    Application.EnableEvents = True

End Sub