如何获取使用特定共享工作簿的用户列表?

时间:2016-01-05 13:20:00

标签: excel vba excel-vba

我正在使用共享工作簿。有一个代码可以撤消WB的共享,更新工作表中的数据,然后再次共享WB。 如果有用户连接到此WB,他们将无法保存在WB上,excel会要求他们以不同的名称保存WB。

我的问题是如何获取当前使用WB的用户列表?

通过这种方式,我可以设置一个msgbox,当有用户使用WB时保持警报并保持WB共享。

由于

3 个答案:

答案 0 :(得分:6)

尝试使用UserStatus Property [Excel 2003 VBA Language Reference]

  

返回提供信息的基于1的二维数组   关于将工作簿作为共享列表打开的每个用户。首先   第二个维度的元素是用户的名称,第二个维度的元素   element是用户上次打开工作簿的日期和时间,   第三个元素是一个表示列表类型的数字(1   表示独占,2表示共享)。只读变体。

示例

此示例创建一个新工作簿,并向其中插入有关将活动工作簿作为共享列表打开的所有用户的信息。

users = ActiveWorkbook.UserStatus
With Workbooks.Add.Sheets(1)
    For row = 1 To UBound(users, 1)
        .Cells(row, 1) = users(row, 1)
        .Cells(row, 2) = users(row, 2)
        Select Case users(row, 3)
            Case 1
                .Cells(row, 3).Value = "Exclusive"
            Case 2
                .Cells(row, 3).Value = "Shared"
        End Select
    Next
End With

答案 1 :(得分:4)

Sub getListUsingUsers()
    Users = ActiveWorkbook.UserStatus
    MsgBox "Total Users using the current WorkBook: " & UBound(Users)
End Sub

此代码为我提供了连接到WB的用户数量的msgbox。

谢谢@duDE

答案 2 :(得分:0)

哇。如何进入MenuBar-Review => Share Workbook =>编辑标签,查看所有打开WB的用户