我有一個共享文檔,它在關閉時運行各種命令。這包括正常保存(如果文檔仍然共享)並保存爲共享(如果文檔未共享)。如何檢查當前用戶是否已從共享工作簿中刪除?
當一個人將文檔打開一段時間然後關閉它時,就會出現問題。該文檔會自動覆蓋當前文檔(如果文檔未共享,或者在.save命令運行時提供覆蓋選項)並且同時輸入的數據可能會丟失。
如何檢查用戶是否從文檔中刪除,以便在這種情況下可以跳過保存部分?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To Sheets.Count
If Sheets(i).ProtectContents = False Then
Call Protect_Sheets 'Protects all the sheets
End If
Next i
If ActiveWorkbook.ProtectStructure = False Then
Call Protect_Workbook 'Protects the workbook
End If
If ActiveWorkbook.MultiUserEditing = False Then
Call SaveAsShared 'Saves the workbook as shared (overrides)
Else
ActiveWorkbook.Save 'Only saves as normal when the document was shared upon close (but defaults the current document name (which will override when no attention is paid))
End If
End Sub
如果可能的話,我想另一個「如果」,當用戶已經從工作簿中刪除終止分(只是調用SaveAsShared函數之前)。 任何幫助將不勝感激! 在此先感謝!
Lou
如果用戶已從文檔中刪除,他們是否知道他們已被刪除,他們的文檔的臨時版本是否知道? – Tbaker 2014-11-06 16:47:19
如何檢查臨時版本是否仍然連接到文檔?我不確定當你被踢出文檔時會發生什麼......另外,如果是這種情況,我會插入一個消息框告訴他們它們已被刪除。 (順便說一句,非常感謝你看這個) – Lou 2014-11-07 09:54:01
如果你可以告訴他們何時斷開連接,如果你在某處保存了一個本地版本,以便在他們需要將它們添加到主文檔時不會丟失它們的更改,退出時的代碼可以正常運行,因爲當它執行workbook.save時,它只會保存在刪除時創建的版本 – Tbaker 2014-11-07 12:40:48