Прочитать на английском

Поделиться через


Объект Sync (Office)

Свойство Sync объекта Document в Microsoft Word, объекта Workbook в Microsoft Excel и объекта Presentation в Microsoft PowerPoint возвращает объект Sync .

Примечание

Начиная с Microsoft Office 2010 этот объект или элемент не рекомендуется использовать.

Замечания

Используйте объект Sync для управления синхронизацией локальных и серверных копий общего документа, хранящегося на сайте SharePoint. Свойство Status возвращает важные сведения о текущем состоянии синхронизации. Используйте метод GetUpdate для обновления состояния синхронизации. Используйте свойства LastSyncTime, ErrorType и WorkspaceLastChangedBy , чтобы вернуть дополнительные сведения.

Дополнительные сведения о различиях и конфликтах, которые могут существовать между локальными и серверными копиями общих документов, см. в свойстве Status .

Используйте метод PutUpdate для сохранения локальных изменений на сервере. Закройте и снова откройте документ, чтобы получить последнюю версию с сервера, если локальные изменения не были внесены. Используйте метод ResolveConflict , чтобы устранить различия между локальной и серверной копиями, или метод OpenVersion , чтобы открыть другую версию вместе с открытой локальной версией документа.

Методы GetUpdate, PutUpdate и ResolveConflict объекта Sync не возвращают коды состояния, так как они выполняют свои задачи асинхронно. Объект Sync предоставляет важные сведения о состоянии через одно событие, к которому разработчик может получить доступ с помощью следующих событий, относящихся к приложению:

  • В Word через событие Sync объекта Document или событие DocumentSync объекта Application .

  • В Excel с помощью события Sync объекта Workbook или события WorkbookSync объекта Application .

  • В Microsoft PowerPoint через событие PresentationSync объекта Application .

Описанное выше событие Sync возвращает значение msoSyncEventType .

Объектная модель синхронизации доступна независимо от того, включены ли в активном документе общий доступ и синхронизация. Свойство Sync объектов Document, Workbook и Presentation не возвращает Значение 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 и обратная связь.