我有一个保存在服务器上的 Excel 电子表格,就访问该表格而言,只有大约 20 个人有权访问该文件夹,无论如何,他们都可以查看上一个修改者之后的修改历史记录
答案1
大多数“服务器”都允许文件级审计,但这是每个服务器和每个文件系统所特有的。这些审计日志可能包含您要查找的信息,但如果未启用日志记录,那么事后您就无法获得太多信息。
我之所以将“服务器”放在引号中,是因为连接到 NAS 的 NTFS 客户端与连接到基于 Windows 的服务器的功能数量不同。也就是说,基于 Linux 的变体可能包含与基于 Windows 的文件服务器不同的审计粒度。
答案2
您可以向文件添加一些 VBA,并将其设置为在保存时运行。这会写入名为“log”的工作表。将其添加到模块中ThisWorkbook
。您需要确保电子表格保存为 .xlsm 并且用户已启用宏。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim CurrentUser As String
Dim CurrentDttm As Date
CurrentUser = Application.UserName
CurrentDttm = Format(Now, "yyyy/mm/dd hh:mm")
LastRowWithData = Sheets("log").Range("A1").End(xlDown).Row
If LastRowWithData > 65000 Then
LastRowWithData = 1
End If
Sheets("log").Range("A" & LastRowWithData + 1).Value = CurrentDttm
Sheets("log").Range("B" & LastRowWithData + 1).Value = CurrentUser
End Sub