> что действительно так долго обновляется связь с закрытой книгой-источником или нет?
Да
> Это ведь явная недоработка программистов из "Microsoft"
Скорее недооценка Вами возможных проблем, которые при этом могли бы возникнуть
Ссылки в общем случае могут быть и на различные файлы, а открыть одновременно все невозможно в силу ограничений операционной системы (не более 16384 для WinXP).
И под открытием файла здесь подразумевается не штатная загрузка книги в excel, а открытие дескриптора файла и чтение данных посредством какого-нибудь интерфейса типа ODBC.
Судя по всему, выбранные Вами средства решения не очень адекватны решаемой задаче.
Несмотря на то, что Excel позволяет заполнять все ячейки листа и столько листов, сколько позволяет память, никому же не приходит в голову идея действовать подобным образом.
Поместите приведенный ниже макрос в модуль ЭтаКнига и сохраните книгу в формате с поддержкой макросов. После этого очередная загрузка с обновлением всех внешних данных будет выполнена быстро.
Код |
---|
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Me.UpdateLinks = xlUpdateLinksNever
End Sub
Private Sub Workbook_Open()
Dim x
On Error Resume Next
Application.ScreenUpdating = False
For Each x In Me.LinkSources(xlExcelLinks)
Workbooks.Open(Filename:=x, UpdateLinks:=False, ReadOnly:=True).Close False
Next
Me.Activate
Application.ScreenUpdating = True
End Sub |