同步对象 (Office)
Microsoft Word 中 Document 对象的 Sync 属性、Microsoft Excel 中的 Workbook 对象和 Microsoft PowerPoint 中的 Presentation 对象返回 Sync 对象。
备注
自 Microsoft Office 2010 开始,此对象或成员已弃用,不应再行使用。
使用 Sync 对象可管理 SharePoint 网站上存储的共享文档的本地副本和服务器副本的同步。 Status 属性返回有关同步当前状态的重要信息。 使用 GetUpdate 方法刷新同步状态。 使用 LastSyncTime 、 ErrorType 和 WorkspaceLastChangedBy 属性返回的其他信息。
有关共享文档的本地副本和服务器副本之间可能存在的差异和冲突的其他信息,请参阅 Status 属性。
使用 PutUpdate 方法将本地更改保存到服务器。 关闭并重新打开文档可从服务器检索最新版本,未不进行任何本地更改时。 使用 ResolveConflict 方法可解决本地副本和服务器副本之间的差异,或者使用 OpenVersion 方法可在当前打开的文档的本地版本旁打开另一版本。
Sync 对象的 GetUpdate、PutUpdate 和 ResolveConflict 方法不返回状态代码,因为它们以异步方式完成任务。 Sync 对象通过单个事件提供重要的状态信息,开发人员可以通过以下应用程序特定事件来访问这些信息:
在 Word 中,通过 Document 对象的 Sync 事件或 Application 对象的 DocumentSync 事件。
在 Excel 中,通过 Workbook 对象的 Sync 事件或 Application 对象的 WorkbookSync 事件。
在 Microsoft PowerPoint 中,通过 Application 对象的 PresentationSync 事件。
上述 Sync 事件返回一个 msoSyncEventType 值。
Sync 对象模型是否共享也可启用或禁用活动文档同步。 当活动文档未共享或未启用同步时,文档、工作簿和演示文稿对象的 Sync 属性不会返回 Nothing。 使用 Status 属性可确定文档是否共享以及是否启用同步。
不是所有文档同步问题都会引发可捕获的运行时错误。 使用 Sync 对象的方法后,最好检查 Status 属性;如果 Status 属性为 msoSyncStatusError,请检查 ErrorType 属性以获取有关已发生的错误类型的其他信息。
在许多情况下,解决错误条件的最佳方法是调用 GetUpdate 方法。 例如,如果调用 PutUpdate 导致的错误条件时, GetUpdate 调用可以将状态置为 msoSyncStatusLocalChanges 。
下面的示例将基于活动文档的状态说明 Sync 对象的多种方法。
Dim objSync As Office.Sync
Dim strStatus As String
Set objSync = ActiveDocument.Sync
If objSync.Status > msoSyncStatusNoSharedWorkspace Then
Select Case objSync.Status
Case msoSyncStatusConflict
objSync.ResolveConflict msoSyncConflictMerge
ActiveDocument.Save
objSync.ResolveConflict msoSyncConflictClientWins
strStatus = "Conflict resolved by merging changes."
Case msoSyncStatusError
strStatus = "Last error type: " & objSync.ErrorType
Case msoSyncStatusLatest
strStatus = "Document copies already in sync."
Case msoSyncStatusLocalChanges
objSync.PutUpdate
strStatus = "Local changes saved to server."
Case msoSyncStatusNewerAvailable
objSync.GetUpdate
strStatus = "Local copy updated from server."
Case msoSyncStatusSuspended
objSync.Unsuspend
strStatus = "Synchronization resumed."
End Select
Else
strStatus = "Not a shared workspace document."
End If
MsgBox strStatus, vbInformation + vbOKOnly, "Sync Information"
Set objSync = Nothing
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。