You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整VBA代码仅移除打开共享Workbook超2小时的用户

修改思路

ThisWorkbook.UserStatus返回的二维数组中,第二列UsrList(i, 2)存储的就是对应用户打开工作簿的时间,只需计算当前时间和该打开时间的差值,判断是否超过2小时即可。

调整后的完整代码

Sub Remove_Timed_Users_from_Shared_Workbook()
    Dim UsrList()
    Dim openHours As Double
    UsrList = ThisWorkbook.UserStatus

    For i = UBound(UsrList, 1) To 1 Step -1
        ' 跳过当前操作用户本人
        If UsrList(i, 1) <> Application.UserName Then
            ' 计算已打开时长,日期差值单位为天,乘以24换算为小时
            openHours = (Now - UsrList(i, 2)) * 24
            ' 仅移除打开时长超过2小时的用户
            If openHours > 2 Then
                ThisWorkbook.RemoveUser i
            End If
        End If
    Next 
End Sub

补充说明

  • 倒序遍历用户列表是为了避免移除用户后列表索引错位导致的漏判问题
  • 如果需要调整移除的时长阈值,直接修改openHours > 2中的数字即可
  • 执行代码前请确认你拥有该共享工作簿的管理员权限,否则无法执行移除用户操作

内容的提问来源于stack exchange,提问作者Leedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:15:03