VBA在创建行时添加用户名

时间:2016-08-15 13:55:19

标签: excel vba excel-vba

我目前有一个场景,有几个用户将数据行输入到Excel表格。没有涉及共享工作簿设置,因此只有一个用户可以随时打开文档。是否有一个VBA方法可以用来捕获当前打开文档的用户的名称,并在每次向表中添加一行时插入它?从而为每一行提供作者。

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以在相关工作表的代码窗格中添加以下代码

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Columns("A:N"), Target) Is Nothing Then Cells(Target.Row, "O").Value = Environ$("Username")
End Sub

当然,您可以微调在“O”列中插入用户名的If子句

答案 1 :(得分:0)

以下代码将获取用户名称:

Application.UserName

答案 2 :(得分:0)

我至少在我的工作电脑上找到了:

Environ$("Username"‌​)提供管理员
Application.UserName提供 IT

现在,我可以将Application.UserName更改为我的名字 - 很容易做一点知识,但我发现很多办公室工作人员都没有那么少的知识......

另一方面,Outlook通常设置为特定用户,因此当Excel首次打开并存储在全局变量中时:

Sub Test()

    Dim olApp As Object
    Set olApp = CreateObject("Outlook.Application")

    MsgBox olApp.session.currentuser

End Sub