程序执行我想要的操作,但是我遇到了运行时错误。我不是程序员,所以我在寻求帮助。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
For Each cell In Range("a1:a10")
If (cell.Value) = "0" Then
Range("b" & Target.Row).Clear
End If
Next
End Sub
答案 0 :(得分:0)
错误28的原因是由Clear()
引起的无限递归,导致后续的Worksheet_Change
执行。
作为快速脏修补程序,您可以使用全局Boolean
变量来跳过过多的Clear()
调用。
Public isChanging As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If isChanging = False Then
isChanging = True
Dim cell As Range
For Each cell In Range("a1:a10")
If (cell.Value) = "0" Then
Range("b" & cell.Row).Clear
End If
Next
isChanging = False
End If
End Sub