Доброе время!
Использовал данный макрос для автоматического обновления (по заданию Планировщика задания) данных в группе файлов .xls*,
которая подтягивает данные (OLE-link) из множества связанных обновляющихся файлов-источников .doc и .docx.
При использовании кода:
[vba]Код
Do While File <> ""
With Workbooks.Open(Filename:=Папка & Имя, UpdateLinks:=3) ' здесь макрос делает открытие и обновление файлов в папке
.Close SaveChanges:=True
End With
File = Dir
Loop
[/vba]
столкнулся с проблемой, что файлы открываются, но данные по OLE ссылкам не обновляются.
Чтобы автоматом обновлялись удаленные ссылки в цикл нужно добавить
[vba]Код
.UpdateRemoteReferences = True
[/vba]
Мой итоговый макрос выглядит так:
[vba]Код
Sub MyMacro
With Application
.ScreenUpdating = False ' обновление экрана
.DisplayAlerts = False ' вывод системных сообщений
.EnableEvents = False ' чтобы события не выполнялись
.AskToUpdateLinks = False ' чтобы не появлялись запросы на обновления связей
Report = "Полный путь к папке с файлами"
File = Dir(Report & "*.xls*")
Do While File <> ""
With Workbooks.Open(Filename:=Report & File) ' открытие файлов в папке по очереди
.UpdateRemoteReferences = True ' обновление ссылок после открытия
.Close SaveChanges:=True ' сохранение и закрытие
End With
File = Dir
Loop
.ScreenUpdating = True ' обновление экрана
.DisplayAlerts = True ' вывод системных сообщений
.EnableEvents = True ' выполнение событий
.AskToUpdateLinks = True ' запросы на обновления связей
End With
End Sub
[/vba]
Может кому пригодится, так как ни на одном форуме я данное решение не нашел.