ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
UPDATE:
After all the details summarized and discussed, I spent 2 fair hours in checking the options, and this update is to dot all i
s.
Preparations
First of all, I performed a clean Office 2010 x86 install on Clean Win7 SP1 Ultimate x64 virtual machine powered by VMWare (this is usual routine for my everyday testing tasks, so I have many of them deployed).
Then, I changed only the following Excel options (i.e. all the other are left as is after installation):
Advanced > General > Ask to update automatic links
checked:
Trust Center > Trust Center Settings... > External Content > Enable All...
(although that one that relates to Data Connections is most likely not important for the case):
Preconditions
I prepared and placed to C:
a workbook exactly as per @Siddharth Rout
suggestions in his updated answer (shared for your convenience): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Linked book was then deleted so that link in the shared book is unavailable (for sure).
Manual Opening
The above shared file shows on opening (having the above listed Excel options) 2 warnings — in the order of appearance:
WARNING #1
After click on Update
I expectedly got another:
WARNING #2
So, I suppose my testing environment is now pretty much similar to OP
‘s) So far so good, we finally go to
VBA Opening
Now I’ll try all possible options step by step to make the picture clear. I’ll share only relevant lines of code for simplicity (complete sample file with code will be shared in the end).
1. Simple Application.Workbooks.Open
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
No surprise — this produces BOTH warnings, as for manual opening above.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
This code ends up with WARNING #1, and either option clicked (Update
/ Don't Update
) produces NO further warnings, i.e. Application.DisplayAlerts = False
suppresses WARNING #2.
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
Opposite to DisplayAlerts
, this code ends up with WARNING #2 only, i.e. Application.AskToUpdateLinks = False
suppresses WARNING #1.
4. Double False
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Apparently, this code ends up with suppressing BOTH WARNINGS.
5. UpdateLinks:=False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx", UpdateLinks:=False
Finally, this 1-line solution (originally proposed by @brettdj
) works the same way as Double False: NO WARNINGS are shown!
Conclusions
Except a good testing practice and very important solved case (I may face such issues everyday while sending my workbooks to 3rd party, and now I’m prepared), 2 more things learned:
- Excel options DO matter, regardless of version — especially when we come to VBA solutions.
- Every trouble has short and elegant solution — together with not obvious and complicated one. Just one more proof for that!)
Thanks very much to everyone who contributed to the solution, and especially OP who raised the question. Hope my investigations and thoroughly described testing steps were helpful not only for me)
Sample file with the above code samples is shared (many lines are commented deliberately): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
Original answer (tested for Excel 2007 with certain options):
This code works fine for me — it loops through ALL Excel files specified using wildcards in the 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
I tried it with books with unavailable external links — no warnings.
Sample file: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
0 / 0 / 0 Регистрация: 28.05.2008 Сообщений: 21 |
|
1 |
|
Обойти сообщение об обновлении связей?09.06.2008, 15:12. Показов 18384. Ответов 9
Привет!
0 |
2 / 2 / 1 Регистрация: 01.01.2008 Сообщений: 410 |
|
10.06.2008, 13:02 |
2 |
А почему нельзя фишку поставить в параметрах Excelа типа не спрашивать про связи?
0 |
0 / 0 / 0 Регистрация: 28.05.2008 Сообщений: 21 |
|
10.06.2008, 14:28 [ТС] |
3 |
Нужно,чтобы связи обновлялись автоматически,а Еxcele есть фишка только по запросу.
0 |
2 / 2 / 1 Регистрация: 01.01.2008 Сообщений: 410 |
|
10.06.2008, 14:44 |
4 |
Hi, Natasha!
0 |
0 / 0 / 0 Регистрация: 28.05.2008 Сообщений: 21 |
|
10.06.2008, 15:43 [ТС] |
5 |
Привет!
0 |
2 / 2 / 1 Регистрация: 01.01.2008 Сообщений: 410 |
|
11.06.2008, 13:39 |
6 |
Привет, Natasha!
0 |
0 / 0 / 0 Регистрация: 28.05.2008 Сообщений: 21 |
|
11.06.2008, 14:22 [ТС] |
7 |
Спасибо большое!Век живи,век учись!Зациклилась совсем,а вроде не дилетант.
0 |
0 / 0 / 0 Регистрация: 03.05.2010 Сообщений: 141 |
|
02.11.2011, 15:30 |
8 |
А как можно программно снять/установить галку «Запрашивать об обновлении автоматических связей» ?
0 |
Comanche |
|
02.11.2011, 15:35 |
9 |
Код Application.AskToUpdateLinks = True/False Я этого не знал. Просто есть такая полезная штука — макрорекордер… |
0 / 0 / 0 Регистрация: 03.05.2010 Сообщений: 141 |
|
02.11.2011, 18:40 |
10 |
еще небольшой вопрос по теме … в какое событие (обязательно перед открытием книги) поставить очистку формулы ? спасибо
0 |
!!!!! ОБНОВЛЕНИЕ ФАЙЛОВ БЕЗ ОТКРЫТИЯ!!!!! |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
|
|
|
Популярные разделы FAQ: Общие вопросы Особенности VBA-кода Оптимизация VBA-кода Полезные ссылки
1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость — сестра таланта.
3. Не забывайте использовать теги [сode=vba] …текст программы… [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Как обойти запрос на обновление внешних связей в Excel?
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Надоел запрос на обновление внешних связей.
Private Sub Workbook_Open() ‘Отключаем предупреждения (может и не надо, но пусть будет) и обновляем связи сами With Application .DisplayAlerts = False End With With ActiveWorkbook .UpdateRemoteReferences = False .UpdateLink Name:=ActiveWorkbook.LinkSources End With ‘включаем все как было With Application .DisplayAlerts = True End With With ActiveWorkbook .UpdateRemoteReferences = True End With End Sub
Обнаружилась вот какая бяка: событие workbook.open обрабатывается ПОСЛЕ того, как эксель сам обнаруживает связи и пытается их обновить. Мой код выполняется, но это уже никому не нужно. |
pashulka |
|
Full Member Рейтинг (т): 95 |
Если речь идёт о MS Excel XP/2003, то можно сделать следующее : 1. Открыть нужную рабочую книгу. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- VB for Application
- Следующая тема
[ Script execution time: 0,0530 ] [ 16 queries used ] [ Generated: 14.04.23, 17:37 GMT ]