Excel的最新修改时间戳

时间:2012-12-02 07:54:06

标签: excel vba

  

可能重复:
  Date Modified Time Stamp of an Excel Sheet Using VBA

您好我有一个excel工作簿...我想在工作表的第2页的单元格A2中记下时间戳,以便在工作簿的sheet2的任何行或列中进行最新修改。

所以我的问题有两个: 1.想要追踪最新的修改时间。 2.想要将sheet1的单元格A2作为用户保护,以便没有人可以篡改跟踪的时间戳。 这是我工作的代码......它不正确,因为它没有做任何事情..如果它会做bben做任何事情然后肯定没有任何问题让我分享它,但因为它没有做任何事情所以它有点无用。

       Private Sub worksheet_change(ByVal Target As Range)
       Dim Row, Col

       For Row = 2 To Sheet2.UsedRange.Rows.Count
       For Col = 1 To Sheet2.UsedRange.Columns.Count
       If Target.Cells(Row, Col) Then
       Application.EnableEvents = False
       Sheet1.Cells("A2") = now()
       Application.EnableEvents = True
       End If
       Next Col
       Next Row

       End Sub        

1 个答案:

答案 0 :(得分:0)

让你朝着正确的方向前进:

  • 右键单击工作表2的工作表选项卡。
  • 选择“查看代码”。
  • 您会在模块顶部看到两个下拉菜单。在第一个选择“工作表”。在第二个选择“改变”。
  • 这将为Worksheet_Change过程创建模板,只要用户更改了Sheet2中的值,就会触发该模板。
  • 使用它将时间戳写入sheet1的单元格A2。

对于问题的第二部分,请保护表1.在代码中,即:

ThisWorkbook.Worksheets("Sheet1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

在您写入单元格A2之前,首先取消保护它:

ThisWorkbook.Worksheets("Sheet1").Unprotect

如果要添加密码,请在帮助中查找Protect和Unprotect方法。

(请记住,即使使用密码,表单保护也相当薄弱。对于临时工作来说,没关系,但如果用户决定这样做,可能会被用户破解。更好的方法可能是编写值到一个具有xlVeryHidden可见属性的工作表,以便大多数用户甚至不知道它(如果你对VBA项目应用保护)。再次,不是不可破解,但比在可见工作表中更好。)