特定工作表的上次保存日期和时间VBA

时间:2015-09-18 01:33:51

标签: excel vba excel-vba

您好我遇到了工作簿的最后保存选项,其中代码允许跟踪上次修改并显示在单元格中的日期和时间。我想知道vba是否允许跟踪数据和在特定工作表上最后修改它的时间,让我们说Sheet1。因此,每次更改并保存在工作表1中时,它将仅反映该工作表的保存时间和日期。这是我到目前为止工作簿的代码,尝试将.Sheets("Sheet 1")添加到代码中,但它跟踪我访问页面的时间而不是我编辑的时间。这些是我工作簿中的代码。

   Private Sub Workbook_Open()
  Call starttheClock
End Sub

Sub Workbooky()
ActiveWindow.ScrollRow = 1
End Sub

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

2 个答案:

答案 0 :(得分:1)

您无法保存工作表。总是你必须保存整个工作簿。这就是它出现错误的原因。

如果您想知道编辑每张纸的确切时间和日期,可以在下面找到。

http://www.ozgrid.com/forum/showthread.php?t=46624

Private Sub Worksheet_Change(ByVal Target As Range) 
    Sheets("Index").Range("B2") = Now 
End Sub 

答案 1 :(得分:1)

只是为上面的答案添加一点混淆,如果你有一个名为“索引”的工作表,并希望每次有一个更改时都有一个添加到工作表的日期,可能是一个代码将进入工作簿模块。然后,只要有一个代码可以检查任何工作表是否有变化。

这是工作簿模块所在的位置,代码属于那里。

enter image description here

这假设您有一张名为“Index”的工作表,一旦您正确地将其命名为任何您想要的名称。 代码中的实际工作表名称和工作表名称必须完全匹配。

enter image description here

以下是工作簿模块中的代码。将其复制并粘贴到工作簿模块中

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