上次修改工作表时的时间戳

时间:2017-06-12 12:18:02

标签: excel-vba vba excel

我有一个包含多个工作表的工作簿,我需要在上次修改每个工作表时单独加上时间戳。我找到了下面的代码,但它给了我最后修改整个工作簿的时间,而不是每个单独的工作表。我尝试了一些变化,但无法让它工作。有关如何做的任何建议吗?

Public Function LastUpdated()
    LastUpdated= Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function

2 个答案:

答案 0 :(得分:1)

将以下内容放入ThisWorkbook对象会将标记写入单元格C3(第3行,第3列)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.EnableEvents = False
    Target.Parent.Cells(3, 3) = Format(Now, "m/d/yy h:n ampm")
    Application.EnableEvents = True
End Sub

答案 1 :(得分:1)

每个工作表中输入以下事件宏:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
        Cells(Rows.Count, Columns.Count).Value = Now
    Application.EnableEvents = True
End Sub

它记录工作表右下角单元格的更改日期/时间。然后在标准模块中输入以下 UDF()

Public Function Updatee() As Date
    Application.Volatile

    Dim w As Worksheet
    Set w = Application.Caller.Parent

    Updatee = w.Cells(Rows.Count, Columns.Count).Value
End Function

它将显示该工作表的右下角单元格的内容。