我在Sheet1中(注意 - 此代碼是在wroksheet對象,而不是工作簿對象或模塊),下面的代碼:Excel VBA中,在工作表中的代碼不工作
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
不能一步throught代碼中,我試圖把ActiveWorkbook.save在一個單獨的模塊,然後調用該函數從工作表中的代碼,而是陷入了一個無限循環的好。
通過更新工作表,您再次觸發更改事件,從而創建無限循環。您需要在執行更新之前使用Application.EnableEvents = False來禁用事件,然後再次切換事件。 –
無限循環;-) +1 @TimWilliams – bonCodigo
爲快速回復的問題,如果我將Application.EnableEvents = False放在單元格(r - 1,7).Value = Now()之前,則單元格(r - 1,7 ).Value = Now()不起作用。我沒有得到無限循環,如果我拿出ActiveWorkbook.save,那麼這條線觸發更改事件(保存文件構成更改事件) – user1894469