2017-06-12 52 views
0

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

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

使用'Workbook_SheetChange'事件。时间戳应该去哪里? – Rory

+0

@Rory在工作表中的任何单元格中;想要一个功能,所以我可以做= LastUpdated() – Hillash

+0

“Change”事件将更容易实现。 – Rory

回答

0

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

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 

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

+0

正是我在找的! – Hillash

0

把在ThisWorkbook对象下面会写印模到小区C3(第三行,第三列)

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