【问题标题】:VBA - Username of open workbook (read only)VBA - 打开工作簿的用户名(只读)
【发布时间】:2015-08-08 13:40:37
【问题描述】:

如果打开的工作簿(位于服务器上)处于只读模式,如何使用 VBA 显示活动用户名?

我已经查看了.WriteReservedBy,但这仅显示了上次使用密码保存文件的人的姓名。

【问题讨论】:

标签: excel ms-access vba


【解决方案1】:

这应该是评论,但我的声誉太低了

我看过这个,但从不需要信息...

要尝试的事情:

  • ThisWorkbook.UserStatus - 包含文件的所有当前用户以独占或共享方式打开的数组
  • Environ("USERNAME")
  • CreateObject("WScript.NetWork").UserName
  • API 调用:

.

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA"
( _
    ByVal lpName As String, _
    ByVal lpUserName As String, _
    lpnLength As Long
) As Long

Declare Function GetUserName& Lib "advapi32.dll" Alias "GetUserNameA" _ 
(ByVal lpBuffer As String, nSize As Long)

.

有关这些 API 的更多详细信息:



Public Function GetActiveUser(Optional ByVal computer As String = ".") As String
    Dim wmi As Object, itm As String

    On Error Resume Next
    Set wmi = GetObject("winmgmts:\\" & computer & "\Root\CIMv2")
    itm = wmi.ExecQuery("Select UserName from Win32_NetworkConnection", , 48)
    GetNetActiveUser = itm
End Function

【讨论】:

    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    相关资源
    最近更新 更多