You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Excel VBA获取Excel文件的最后编辑用户名称?

能否通过Excel VBA获取文件最后编辑者姓名

完全可以实现,针对部门全员共享访问的业务模型场景,有两种常用实现方案,可根据对准确性的要求选择:

方案1:读取内置文档属性(无需额外配置,快速实现)

Excel文件本身会在元数据中存储最后保存者信息,直接通过VBA读取内置属性即可拿到对应值,适合对准确性要求不高的场景。
对应代码如下:

Sub 读取最后编辑者()
    Dim lastEditorName As String
    ' 读取内置元数据中的最后作者字段
    lastEditorName = ThisWorkbook.BuiltinDocumentProperties("Last Author")
    ' 将结果写入当前工作表A1单元格,可自行调整展示位置
    Range("A1").Value = "最后编辑人:" & lastEditorName
End Sub

注意:该方法读取的是文件元数据值,如果文件经过传输拷贝、用户手动修改过Office用户名、或被非Office工具编辑过,返回结果可能和实际编辑人存在偏差。

方案2:保存事件自动记录(适合共享场景,准确性高)

如果需要精准记录实际编辑人,推荐用工作簿保存事件触发记录:每次用户保存文件时,自动读取当前打开文件的Office用户名写入指定位置,不会受元数据异常影响。
操作时需要将以下代码写入VBA编辑器的ThisWorkbook模块中:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ' 示例将最后编辑人写入「参数配置」工作表的B2单元格,可自行修改工作表和单元格位置
    Sheets("参数配置").Range("B2").Value = Application.UserName
    ' 如果需要同步记录最后编辑时间,放开下行注释即可
    ' Sheets("参数配置").Range("B3").Value = Now()
End Sub

注意事项:

  • 使用该方案需要将文件保存为启用宏的格式,比如.xlsm、.xlsb格式
  • 需要告知部门成员打开文件时启用宏,否则记录逻辑不会生效;如果需要避免用户漏启用宏,可以搭配宏检测逻辑,打开文件时先判断宏是否启用,未启用则直接跳转提示页

内容的提问来源于stack exchange,提问作者James Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 11:39:18