Vba 在Excel中跟踪共享驱动器用户名和打开时间?
我发现了一篇关于我的问题的类似文章,如下所述 然而,我确实喜欢评论的最后一栏>> “您还可以在下一列中添加时间戳,以显示电子表格的使用时间” 我的问题是>有人可以指导我可能的步骤,或者让我复制代码来完成这项工作吗?如何在没有人注意的情况下隐藏工作表? 我的关键是,非常重要的是,所有的事情都必须安静地进行,没有其他人(sharedrive中的其他用户)可以发现我正在跟踪它。原因是,我已经做了很多研究工作表,我没有时间/不可能让每一张excel工作表都完美,我需要对它们进行优先排序,以便通过知道哪一张对人们更重要来提高我的时间效率Vba 在Excel中跟踪共享驱动器用户名和打开时间?,vba,excel,macros,Vba,Excel,Macros,我发现了一篇关于我的问题的类似文章,如下所述 然而,我确实喜欢评论的最后一栏>> “您还可以在下一列中添加时间戳,以显示电子表格的使用时间” 我的问题是>有人可以指导我可能的步骤,或者让我复制代码来完成这项工作吗?如何在没有人注意的情况下隐藏工作表? 我的关键是,非常重要的是,所有的事情都必须安静地进行,没有其他人(sharedrive中的其他用户)可以发现我正在跟踪它。原因是,我已经做了很多研究工作表,我没有时间/不可能让每一张excel工作表都完美,我需要对它们进行优先排序,以便通过知道哪
非常感谢~ 在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
所有这些“工作表更改”脚本都是工作表事件。您需要右键单击工作表并单击“查看代码”,然后将脚本粘贴到打开的窗口中。一次尝试一个,而不是全部三个。另外,遵循本文中所述的excel编码marcos“我如何跟踪谁使用我的Excel电子表格?”Excel文件打开时自动发送电子邮件功能>我可以在编码中设置一些内容,使其在我打开时停止发送电子邮件吗?谢谢首先我想指出的是,没有必要对你自己的帖子发表评论。您可以
编辑您的帖子并将其更改以修改上述评论。之后,您可以使用旁边的小x
删除上述注释。关于你的上述职位,我想建议你不要在Excel中尝试。Excel中没有(有限且容易克服的)安全性。如果您想/必须跟踪他们的行为,那么我建议将Excel文件连接到SQL Server并在那里进行跟踪。无论您在Excel中做什么,都无法有效隐藏。