我在sheet1中有以下代码(注意 - 此代码位于wroksheet对象中,而不是工作簿对象或模块中):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
r = ActiveCell.Row
Cells(r - 1, 7).Value = Now()
ActiveWorkbook.save
End Sub
有人可以告诉我原因: 1. ActiveWorkbook.save上面没有工作 - 它被卡在无限循环中; 2.为什么我不能只按F8
来完成代码我试图将ActiveWorkbook.save放在一个单独的模块中,然后从工作表中的代码中调用该函数,但这也停留在无限循环中。
答案 0 :(得分:3)
您需要禁用事件以避免无限循环
Private Sub Worksheet_Change(ByVal Target As Range)
application.enableevents=false
Cells(target.row - 1, 7).Value = Now()
application.enableevents=true
ActiveWorkbook.save
End Sub
答案 1 :(得分:1)
导致无限循环,因为当您使用当前日期更新单元格时,这会导致工作表更改事件再次调用事件代码。您需要禁用事件,如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
r = ActiveCell.Row
Application.EnableEvents = False
Cells(r - 1, 7).Value = Now()
Application.EnableEvents = True
ActiveWorkbook.Save
End Sub