当另一个函数正在工作时,请关闭Worksheet_Change

时间:2018-09-27 08:01:03

标签: excel vba

我有问题,我想使用如下功能:

Private Sub Clear_WSK1(arrayValWSKrow1 As Variant)
    Dim r As Integer

    For r = 0 To 30
        Workbooks("1_W.xlsm").Sheets(1).Cells(4, r + 4).Value = arrayValWSKrow1(r)
    Next r
End Sub

但是在同一张纸上,我得到了:Sub Worksheet_Change(ByVal Target As Range) 当我调用Clear_WSK1时,该函数被中断,因为For循环的第一次迭代会更改单元格的值,并自动调用Worksheet_Change函数。 Worksheet_Change工作时是否可以关闭Clear_WSK1功能?

1 个答案:

答案 0 :(得分:2)

在例程的顶部放置一条语句Application.EnableEvents = False以禁用事件。

在工作完成后,别忘了将其设置回True-甚至可以添加错误处理程序来做到这一点,即使发生错误。