我尝试创建一个宏,但是当它启动时,excel不会处理它并崩溃。
这是宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim sous As Integer
If Not IsEmpty(Cells(4, 2)) And IsNumeric(Cells(4, 2).Value) And Not IsEmpty(Cells(4, 3)) And IsNumeric(Cells(4, 3).Value) Then
For i = Cells(4, 3).Value To Cells(4, 2).Value
sous = i - Cells(4, 3).Value
Cells(5 + sous, 4).Value = i
Next i
MsgBox "Yataaaah"
End If
End Sub
问题是行Cells(5 + sous, 4).Value = i
,因为如果我把它放在评论上,那就可以了。
任何人都知道为什么excel无法处理它?</ p>
非常感谢你。 Ps:我在mac上,我使用的是Excel 15.19.1
答案 0 :(得分:3)
你必须关闭事件。 Excel崩溃的原因是选择更改事件更改了触发选择更改事件的值。它陷入无休止的循环中。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Integer
Dim sous As Integer
If Not IsEmpty(Cells(4, 2)) And IsNumeric(Cells(4, 2).Value) And Not IsEmpty(Cells(4, 3)) And IsNumeric(Cells(4, 3).Value) Then
For i = Cells(4, 3).Value To Cells(4, 2).Value
sous = i - Cells(4, 3).Value
Cells(5 + sous, 4).Value = i
Next i
MsgBox "Yataaaah"
End If
Application.EnableEvents = True
End Sub