Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel-获取上次修改单元格的用户的用户名_Vba_Excel - Fatal编程技术网

Vba Excel-获取上次修改单元格的用户的用户名

Vba Excel-获取上次修改单元格的用户的用户名,vba,excel,Vba,Excel,是否可以使用一些VBA来记录上次修改特定单元格的用户?i、 例如,如果有人打开工作簿并在A1中输入值,我希望B1显示执行此操作的人的用户名,然后,如果有人打开工作簿并在A2中输入值,我希望他们的用户名在B2中,依此类推。。。我一直在玩下面的例子,但我不确定我是否离得更近了,似乎我只能获取上次修改工作簿的人的用户名 Function LastAuthor() LastAuthor = ActiveWorkbook.BuiltinDocumentProperties("Last Author

是否可以使用一些VBA来记录上次修改特定单元格的用户?i、 例如,如果有人打开工作簿并在A1中输入值,我希望B1显示执行此操作的人的用户名,然后,如果有人打开工作簿并在A2中输入值,我希望他们的用户名在B2中,依此类推。。。我一直在玩下面的例子,但我不确定我是否离得更近了,似乎我只能获取上次修改工作簿的人的用户名

Function LastAuthor()
    LastAuthor = ActiveWorkbook.BuiltinDocumentProperties("Last Author")
End Function

每当在A列中添加/修改/删除一个或多个值时,将在B列中插入windows用户/网络用户

将其添加到工作表的专用代码表中;不是公共模块代码表

private sub worksheet_change(byval target as range)
    if not intersect(range("A:A"), target) is nothing then
        on error goto meh
        application.enableevents = false
        dim t as range
        for each t in intersect(range("A:A"), target)
            t.offset(0, 1) = environ("user")
            't.offset(0, 2) = now
        next t
    end if
meh:
    application.enableevents = true
end sub

LastAuthor是一个文档属性,因此它将始终反映整个文档。您要查找的是一段代码,该代码将在每次单元格更改时运行,然后在活动单元格的某个偏移量中插入当前用户名。有关这方面的更多信息,请参阅此MSDN文章:MS Office作者还是Windows用户?environ(“用户”)提供windows登录名。您好,windows用户。Thanks@Jeeped你能补充一下如何使用office名称来实现这个功能吗?我很喜欢这个概念,但主要是在MAC上,所以这个解决方案在这种情况下不起作用。我没有访问mac的权限,所以我不想在没有测试的情况下说得太具体。