2017-06-12 82 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