4

Допустим, у вас есть две рабочие книги: "PrivateWorkbook" и "PublicWorkbook".

PublicWorkbook доступен для всех в нашей компании.

PrivateWorkbook доступен только для менеджеров.

Существуют внешние ссылки с PublicWorkbook на PrivateWorkBook.

Когда PrivateWorkbook обновляется, в PublicWorkbook появляются ячейки, которые должны отражать эти изменения.

Однако единственный способ обновления ссылок PublicWorkbook - это если менеджер открывает Publicworkbook после редактирования PrivateWorkbook.

Если не-менеджер сначала открывает PublicWorkbook, ссылки не могут быть обновлены, так как у него нет прав на открытие PRivateWorkbook.

Можно ли как-нибудь обновить PublicWorkbook, когда менеджер редактирует Privateworkbook, не заставляя их вручную открывать publicworkbook?

1 ответ1

1

Используйте VBA вместе с его событием Workbook_BeforeClose в вашем личном файле, чтобы автоматически открывать, сохранять и закрывать открытый файл. Событие запускается, когда ваш менеджер закрывает приватный файл. Позвольте менеджеру подтвердить обновление с помощью простой подсказки «да-нет».

Обратите внимание на параметр UpdateLinks:=True который автоматически обновляет все внешние ссылки в вашем публичном файле.

Пример кода (должен быть размещен в ThisWorkbook)

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim wb As Workbook
    FilePath = "C:\public.xls"

    If MsgBox("Update " & FilePath & " ?", vbYesNo) = 6 Then
        Set wb = Workbooks.Open(FilePath, UpdateLinks:=True)
        wb.Close SaveChanges:=True
    End If

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .