Excel工作表最后修改的编码不一致

您好,我有一个代码,理想情况下,应该存储它的工作簿中的每个工作表上次修改的时间。 然而,这个我已经实现的代码看起来很不一致和不准确。 有时它存储我刚刚访问的页面的时间,有时代码不会立即刷新版本。 另外,我在A1单元上有一个运行时钟,所以它也会覆盖写入的单元格。是否有任何改进或替代代码? 谢谢。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ActiveSheet.Name = "Index" Then Exit Sub Application.EnableEvents = 0 i = ActiveSheet.Index With Sheets("Index") .Cells(i, 1) = ActiveSheet.Name .Cells(i, 2) = Now End With Application.EnableEvents = 1 End Sub 

更好的是如果你不使用ActiveSheet ,而是使用Sh参数:

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Name = "Index" Then Exit Sub i = Sh.Index With Sheets("Index") .Cells(i + 1, 1) = Sh.Name .Cells(i + 1, 2) = Now End With End Sub 

从技术上讲,你不需要禁用事件,因为Exit Sub将防止任何循环。