我发现了一篇关于我的问题的类似文章,如下所述;
How do I track who uses my Excel spreadsheet?
但是,我确实喜欢评论的最后一个>> "您还可以在下一栏中加上时间戳,以显示电子表格何时使用"
我的问题是>任何人都可以指导我可能的步骤或让我复制代码这样做吗?以及如何在没有人注意的情况下隐藏工作表? 我的关键是,非常重要的是,一切都必须默默地进行,没有其他人(sharerive中的其他用户)可以找到我跟踪它。原因是,我已经做了很多研究工作表,而且我没有时间/不可能使每一个excel工作表都完美,我需要优先考虑它们,以便通过知道哪一个更重要来提高我的时间对人民来说。
非常感谢〜!!答案 0 :(得分:0)
在Excel中,在“审核”标签下,您有“跟踪更改'”。这应该做你想做的一切。
如果您希望VBA脚本执行此操作,请尝试以下代码示例之一。
Private Sub Worksheet_Change(ByVal Target As Range)
Set t = Target
Set a = Range("A:A")
If Intersect(t, a) Is Nothing Then Exit Sub
Application.EnableEvents = False
t.Offset(0, 7).Value = Environ("username")
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim V As Long
Application.EnableEvents = False
Set rng1 = Application.Union(Range("a1:g1"), Range("H:iv"))
Set rng = Application.Intersect(Target, rng1)
If Not rng Is Nothing Then Exit Sub
V = Target.Offset(0, 12).Value
If Target.Offset(0, 12) = "" Then
With Range("H" & Target.Row)
.Value = Target.Address & ": first entry by " & Application.UserName & " at " & Now()
.ColumnWidth = 60
.Interior.ColorIndex = 33
End With
Target.Offset(0, 12).Value = Target.Value
Application.EnableEvents = True
Exit Sub
End If
Target.Offset(0, 12).Value = Target.Value
With Range("H" & Target.Row)
.Value = Target.Address & " changed from " & V & " to " & Target.Value & " by " & Application.UserName & " at " & Now()
.ColumnWidth = 60
.Interior.Color = vbYellow
End With
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
Application.EnableEvents = False
Sheets("Sheet2").Select
If IsEmpty(.Value) Then
.Offset(0, 1).ClearContents
Else
With .Offset(0, 1)
.NumberFormat = "dd mmm yyyy hh:mm:ss"
.Value = Now
End With
End If
Sheets("Sheet1").Select
Application.EnableEvents = True
End If
End With
End Sub
所有这些'工作表_改变'脚本是工作表事件。您需要右键单击工作表,然后单击“查看代码”。然后将脚本粘贴到打开的窗口中。一次尝试一个,而不是全部三个。