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