同步对象 (Office)

Microsoft Word 中 Document 对象的 Sync 属性、Microsoft Excel 中的 Workbook 对象和 Microsoft PowerPoint 中的 Presentation 对象返回 Sync 对象。

注意

自 Microsoft Office 2010 开始,此对象或成员已弃用,不应再行使用。

备注

使用 Sync 对象可管理 SharePoint 网站上存储的共享文档的本地副本和服务器副本的同步。 Status 属性返回有关同步当前状态的重要信息。 使用 GetUpdate 方法刷新同步状态。 使用 LastSyncTimeErrorTypeWorkspaceLastChangedBy 属性返回的其他信息。

有关共享文档的本地副本和服务器副本之间可能存在的差异和冲突的其他信息,请参阅 Status 属性。

使用 PutUpdate 方法将本地更改保存到服务器。 关闭并重新打开文档可从服务器检索最新版本,未不进行任何本地更改时。 使用 ResolveConflict 方法可解决本地副本和服务器副本之间的差异,或者使用 OpenVersion 方法可在当前打开的文档的本地版本旁打开另一版本。

Sync 对象的 GetUpdatePutUpdateResolveConflict 方法不返回状态代码,因为它们以异步方式完成任务。 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。