VBA在创build行时添加用户名

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

在这里输入图像说明

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

 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子句,

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

 Application.UserName 

我至less在我的工作电脑上find:

Environ$("Username"‌​)给予pipe理员
Application.UserNameIT

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

另一方面,Outlook往往设置为特定的用户,所以当Excel首先打开并存储在一个全局variables中时:

 Sub Test() Dim olApp As Object Set olApp = CreateObject("Outlook.Application") MsgBox olApp.session.currentuser End Sub