[英]Last Save Date and Time VBA for a specific worksheet
嗨,我遇到了工作簿的最后保存选项,其中代码允许跟踪它的最后修改日期和时间,并显示在单元格中。我想知道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
您无法保存工作表。 始终,您必须保存整个工作簿。 这就是为什么会出现错误的原因。
如果您想知道编辑每张纸的确切时间和日期,请按照以下内容查找。
http://www.ozgrid.com/forum/showthread.php?t=46624
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Index").Range("B2") = Now
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.