是否可以查看保存了基于服务器的联网 Excel 电子表格的用户的某些历史记录?

是否可以查看保存了基于服务器的联网 Excel 电子表格的用户的某些历史记录?

我有一个保存在服务器上的 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

相关内容