我有一个共享的Excel电子表格,但它包含保护,以防止员工改变过去的价值。 VBA代码使保护更新,以便仍可以修改当前周。我知道共享限制并解决了除一个问题之外的所有问题。以下是VBA代码的作用:它检查工作表中是否有一个用户,如果这是真的,它将取消共享工作簿,更新保护,然后转发。除了转发之外,一切都很美妙。
我已将其缩小到文件保存回共享时,它不会保持共享模式,重新共享后输入的任何数据都会丢失。
以下是我的代码段:
Sub RESHARE()
Dim Users As Variant
Dim UserCount As Variant
Users = ActiveWorkbook.UserStatus
UserCount = (UBound(Users))
If UserCount = 1 And Not ActiveWorkbook.MultiUserEditing Then
Application.DisplayAlerts = False
With ActiveWorkbook
.KeepChangeHistory = True
.ChangeHistoryDuration = 30
End With
Application.ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, accessMode:=xlShared
Application.DisplayAlerts = True
Else
GoTo MultiUser
End If
MultiUser:
End Sub