How can I get list of users using specific shared workbook?

后端 未结 3 933
庸人自扰
庸人自扰 2021-01-06 16:06

I\'m using shared workbook. There is a code that undo share for the WB, updates data in the sheets and then share the WB again. If there are users connected to this WB, they

3条回答
  •  遥遥无期
    2021-01-06 16:45

    Try to use UserStatus Property [Excel 2003 VBA Language Reference]:

    Returns a 1-based, two-dimensional array that provides information about each user who has the workbook open as a shared list. The first element of the second dimension is the name of the user, the second element is the date and time when the user last opened the workbook, and the third element is a number indicating the type of list (1 indicates exclusive, and 2 indicates shared). Read-only Variant.

    Example

    This example creates a new workbook and inserts into it information about all users who have the active workbook open as a shared list.

    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
    

提交回复
热议问题