ОБНОВИТЬ:
После того, как все детали обобщены и обсуждены, я потратил 2 часа на проверку вариантов, и это обновление расставит все точки над всеми i.
Препараты
Прежде всего, я выполнил чистую установку Office 2010 x86 на виртуальной машине Clean Win7 SP1 Ultimate x64 на базе VMWare (это обычная процедура для моих повседневных задач тестирования, поэтому многие из них у меня развернуты).
Затем я изменил только следующие параметры Excel (т.е. все остальные оставлены без изменений после установки):
Advanced > General > Ask to update automatic links проверил :

Trust Center > Trust Center Settings... > External Content > Enable All... (хотя тот, который относится к подключению данных, скорее всего, не важен для этого случая):

Предварительные условия
Я подготовил и поместил в C:\книгу в точности в соответствии с @Siddharth Routпредложениями в его обновленном ответе (опубликованном для вашего удобства): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Связанная книга была затем удалена, так что эта ссылка в общей книга недоступна (точно).
Открытие вручную
Вышеупомянутый общий файл показывает при открытии (имея перечисленные выше параметры Excel) 2 предупреждения - в порядке появления:
ПРЕДУПРЕЖДЕНИЕ # 1

После нажатия на кнопку Updateя ожидал получить еще один:
ПРЕДУПРЕЖДЕНИЕ # 2

Итак, я полагаю, моя среда тестирования теперь в значительной степени похожа на OP's) Пока все хорошо, мы наконец переходим к
Открытие VBA
Сейчас пошагово попробую все возможные варианты, чтобы картина была наглядной. Я поделюсь только соответствующими строками кода для простоты (полный образец файла с кодом будет предоставлен в конце).
1. Простое приложение. Рабочие тетради. Открыть
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Неудивительно - при этом появляются ОБЕИ предупреждения, как и для ручного открытия выше.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Этот код заканчивается ПРЕДУПРЕЖДЕНИЕМ №1 , и при нажатии любой опции ( Update/ Don't Update) дальнейших предупреждений НЕ выводится, т. Application.DisplayAlerts = FalseЕ. Подавляется ПРЕДУПРЕЖДЕНИЕ №2 .
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
Напротив DisplayAlerts, этот код заканчивается только ПРЕДУПРЕЖДЕНИЕМ №2 , т.е. Application.AskToUpdateLinks = Falseподавляет ПРЕДУПРЕЖДЕНИЕ №1 .
4. Двойная ложь
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
По-видимому, этот код заканчивается подавлением ОБЕИХ ПРЕДУПРЕЖДЕНИЙ .
5. UpdateLinks: = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
Наконец, это однострочное решение (первоначально предложенное @brettdj) работает так же, как Double False: НИКАКИХ ПРЕДУПРЕЖДЕНИЙ не отображаются!
Выводы
За исключением хорошей практики тестирования и очень важного решенного случая (я могу сталкиваться с такими проблемами каждый день, отправляя свои книги третьим лицам, и теперь я подготовлен), я узнал еще 2 вещи:
- Параметры Excel ДЕЙСТВУЮТ независимо от версии, особенно когда речь идет о решениях VBA.
- У каждой проблемы есть короткое и изящное решение - вместе с неочевидным и сложным. Еще одно тому доказательство!)
Большое спасибо всем, кто внес свой вклад в решение, и особенно OP, который поднял вопрос. Надеюсь, мои исследования и подробное описание шагов тестирования были полезны не только для меня)
Общий доступ к файлу с примерами кода выше (многие строки намеренно прокомментированы): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
Исходный ответ (протестирован для Excel 2007 с определенными параметрами):
Этот код отлично работает для меня - он просматривает ВСЕ файлы Excel, указанные с использованием подстановочных знаков в InputFolder:
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
Пробовал с книгами с недоступными внешними ссылками - предупреждений нет.
Пример файла: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm