我有问题,我想使用如下功能:
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
功能?
答案 0 :(得分:2)
在例程的顶部放置一条语句Application.EnableEvents = False
以禁用事件。
在工作完成后,别忘了将其设置回True
-甚至可以添加错误处理程序来做到这一点,即使发生错误。