Здравствуйте, уважаемые форумчане. Так как захожу раз в год, то позвольте поздравить вас всех с 2017 +) Здоровья, счастья, мира ну и всего того, что пожелали Вам на праздничном застолье.
Суть проблемы. Есть два файла Вход_знач и Исход_знач. Оба файла содержат одинаковые таблицы. Нужно получить значения из Исход_знач в Вход_знач. Ну типо из А1 в А1 и так по нескольким столбцам. Примерно будет 100 строк. Поставил прямые ссылки
Все работает, если ручками ткнуть на Данные→Изменить связи→Обновить , но данный способ не устраивает КБ . Приходится плясать с бубном. Как-то давным давно встречал функции ( а может это сбой памяти), которые могут получать значения из закрытой книги.
ЦитатаВопрос №1 ()
Есть ли такие и в самом деле?
Как вариант можно повесить обработку события при открытие книги. [offtop]Правда пока не знаю как себя поведет эта книга после помещения ее в Autocad к качестве OLE объекта.[/offtop]
ЦитатаВопрос №2 ()
Может ли кто с примером макроса помочь?
ЦитатаВопрос №3 ()
Есть ли у кого иные соображения по решению задачи?
Здравствуйте, уважаемые форумчане. Так как захожу раз в год, то позвольте поздравить вас всех с 2017 +) Здоровья, счастья, мира ну и всего того, что пожелали Вам на праздничном застолье.
Суть проблемы. Есть два файла Вход_знач и Исход_знач. Оба файла содержат одинаковые таблицы. Нужно получить значения из Исход_знач в Вход_знач. Ну типо из А1 в А1 и так по нескольким столбцам. Примерно будет 100 строк. Поставил прямые ссылки
Все работает, если ручками ткнуть на Данные→Изменить связи→Обновить , но данный способ не устраивает КБ . Приходится плясать с бубном. Как-то давным давно встречал функции ( а может это сбой памяти), которые могут получать значения из закрытой книги.
ЦитатаВопрос №1 ()
Есть ли такие и в самом деле?
Как вариант можно повесить обработку события при открытие книги. [offtop]Правда пока не знаю как себя поведет эта книга после помещения ее в Autocad к качестве OLE объекта.[/offtop]
ЦитатаВопрос №2 ()
Может ли кто с примером макроса помочь?
ЦитатаВопрос №3 ()
Есть ли у кого иные соображения по решению задачи?
Все работает, если ручками ткнуть на Данные→Изменить связи→Обновить , но данный способ не устраивает КБ .
Это какой-то сбой с файлами. Я их скачал, в файле с формулами указал файл источник. Сохранил файл с формулами и закрыл. Затем открываю и Excel не видит файл источник и просит изменить связь. Хотя такого не должно быть и в диалоговом окне написано "OK". После чего я создал новых два файла, в одном сделал формулу на другой и при открытии файла с формулами уже нет предложения изменить связи.
Все работает, если ручками ткнуть на Данные→Изменить связи→Обновить , но данный способ не устраивает КБ .
Это какой-то сбой с файлами. Я их скачал, в файле с формулами указал файл источник. Сохранил файл с формулами и закрыл. Затем открываю и Excel не видит файл источник и просит изменить связь. Хотя такого не должно быть и в диалоговом окне написано "OK". После чего я создал новых два файла, в одном сделал формулу на другой и при открытии файла с формулами уже нет предложения изменить связи.Karataev
Так формулами или не устраивает? Или не устраивает, что нужно обновляться? Так Вы можете в настройках Excel Файл - Параметры - Центр управления безопасностью - Параметры центра управления безопасностью - Внешнее содержимое - Параметры безопасности для связей в книге поставить галку "Включить автоматическое обновление ..."
Так формулами или не устраивает? Или не устраивает, что нужно обновляться? Так Вы можете в настройках Excel Файл - Параметры - Центр управления безопасностью - Параметры центра управления безопасностью - Внешнее содержимое - Параметры безопасности для связей в книге поставить галку "Включить автоматическое обновление ..."_Boroda_
_Boroda_, я так понял, что у автора при открытии файла каждый раз просит изменить связи. У меня так с его файлами. И автор думает, что это нормально для Excel'я, а я думаю, что сбой с файлами, вероятно из-за несовпадений расширений файлов (это Вы обратили внимание на расширения).
_Boroda_, я так понял, что у автора при открытии файла каждый раз просит изменить связи. У меня так с его файлами. И автор думает, что это нормально для Excel'я, а я думаю, что сбой с файлами, вероятно из-за несовпадений расширений файлов (это Вы обратили внимание на расширения).Karataev
_Boroda_, я так понял, что у автора при открытии файла каждый раз просит изменить связи. У меня так с его файлами. И автор думает, что это нормально для Excel'я, а я думаю, что сбой с файлами, вероятно из-за несовпадений расширений файлов (это Вы обратили внимание на расширения).
Проблема была в этом и вправду думал, что без подтверждения не обойтись. Хотя проставил все галочки. Возможно файл/расширение или еще что-то давало сбой.
Репу поднять не получилось, но обещаю поднять бокал вина за ваше здоровье
Пойду пробовать на OLE интересно там какие подводные камушки вылезут
_Boroda_, я так понял, что у автора при открытии файла каждый раз просит изменить связи. У меня так с его файлами. И автор думает, что это нормально для Excel'я, а я думаю, что сбой с файлами, вероятно из-за несовпадений расширений файлов (это Вы обратили внимание на расширения).
Проблема была в этом и вправду думал, что без подтверждения не обойтись. Хотя проставил все галочки. Возможно файл/расширение или еще что-то давало сбой.
Репу поднять не получилось, но обещаю поднять бокал вина за ваше здоровье
Пойду пробовать на OLE интересно там какие подводные камушки вылезут Stormy
К сожалению, ничего не получилось при работе с OLE Возникли вопросы, может в них все дело. 1) Для двух файлов с разным расширением (xls/xlsx/xlsm) не будет работать автообновление связей? 2) Стоит ли копать в сторону запроса к внешнему подключению или таки разобраться с *формульной* проблемой?
К сожалению, ничего не получилось при работе с OLE Возникли вопросы, может в них все дело. 1) Для двух файлов с разным расширением (xls/xlsx/xlsm) не будет работать автообновление связей? 2) Стоит ли копать в сторону запроса к внешнему подключению или таки разобраться с *формульной* проблемой?Stormy
1. Будет 2. Вам виднее. Я бы формулами сделал. Если их не очень много, конечно. Кстати, если они не автообновляются, то можно макросом по ним пробежаться и "передернуть" каждую. Или все сразу. Или "Данные→Изменить связи→Обновить" записать макросом и повесить на открытие книги
1. Будет 2. Вам виднее. Я бы формулами сделал. Если их не очень много, конечно. Кстати, если они не автообновляются, то можно макросом по ним пробежаться и "передернуть" каждую. Или все сразу. Или "Данные→Изменить связи→Обновить" записать макросом и повесить на открытие книги_Boroda_
Странно, но не хочет обновлять без тыка. Хочу попробовать пересоздать файл, который используется в виде OLE объекта в Autocad. Может этот файл глючит и создает проблему. О результатах отпишусь
Кстати, если они не автообновляются, то можно макросом по ним пробежаться и "передернуть" каждую. Или все сразу. Или "Данные→Изменить связи→Обновить" записать макросом и повесить на открытие книги
Вчера сделал, чет ошибка выскакивала. Попробую этот вариант на свежую голову.
Странно, но не хочет обновлять без тыка. Хочу попробовать пересоздать файл, который используется в виде OLE объекта в Autocad. Может этот файл глючит и создает проблему. О результатах отпишусь
Кстати, если они не автообновляются, то можно макросом по ним пробежаться и "передернуть" каждую. Или все сразу. Или "Данные→Изменить связи→Обновить" записать макросом и повесить на открытие книги
Вчера сделал, чет ошибка выскакивала. Попробую этот вариант на свежую голову.Stormy
If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Íå âûáðàíî íè îäíîãî ôàéëà!" Exit Sub End If
'ïðîõîäèì ïî âñåì âûáðàííûì ôàéëàì x = 1 While x <= UBound(FilesToOpen) Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
Dim aL(), i&, s aL = importWB.LinkSources(xlExcelLinks) If IsEmpty(aL) Then Exit Sub For i = 1 To UBound(aL) s = Split(aL(i), "\") Application.StatusBar = FilesToOpen(x) + " - " + s(UBound(s)) importWB.ChangeLink aL(i), importWB.Path & "\" & s(UBound(s)), 1 importWB.UpdateLink Name:=importWB.Path & "\" & s(UBound(s)), Type:=xlExcelLinks Next importWB.RefreshAll importWB.Close savechanges:=True x = x + 1 Wend
If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Íå âûáðàíî íè îäíîãî ôàéëà!" Exit Sub End If
'ïðîõîäèì ïî âñåì âûáðàííûì ôàéëàì x = 1 While x <= UBound(FilesToOpen) Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
Dim aL(), i&, s aL = importWB.LinkSources(xlExcelLinks) If IsEmpty(aL) Then Exit Sub For i = 1 To UBound(aL) s = Split(aL(i), "\") Application.StatusBar = FilesToOpen(x) + " - " + s(UBound(s)) importWB.ChangeLink aL(i), importWB.Path & "\" & s(UBound(s)), 1 importWB.UpdateLink Name:=importWB.Path & "\" & s(UBound(s)), Type:=xlExcelLinks Next importWB.RefreshAll importWB.Close savechanges:=True x = x + 1 Wend
Добрый день, Влад. Благодарю за пример. Только он мне в таком варианте совсем не подойдет. У меня один файл будет хранится на компе пользователя, а второй на сервере. Хотя, скорее всего можно подпилить его под мои нужды, но ума и знаний пока не хватает =))
Добрый день, Влад. Благодарю за пример. Только он мне в таком варианте совсем не подойдет. У меня один файл будет хранится на компе пользователя, а второй на сервере. Хотя, скорее всего можно подпилить его под мои нужды, но ума и знаний пока не хватает =))Stormy
Stormy, сейчас в этой теме переплелись два элемента: 1) формулы, которые ссылаются на внешние файлы 2) OLE Вам надо наверное создать новую тему, в которой будет про OLE. А в этой теме обсуждать, почему появляется сообщение, предлагающее изменить связи.
У Вас получилось сделать, чтобы не было сообщения, которое предлагает изменить связи?
Stormy, сейчас в этой теме переплелись два элемента: 1) формулы, которые ссылаются на внешние файлы 2) OLE Вам надо наверное создать новую тему, в которой будет про OLE. А в этой теме обсуждать, почему появляется сообщение, предлагающее изменить связи.
У Вас получилось сделать, чтобы не было сообщения, которое предлагает изменить связи?Karataev
Stormy, Конечно можно подпилить - само собой. Либо кто Вам мешает копировать файлы на время обновления в одну папку (если это не так часто происходит).
Stormy, Конечно можно подпилить - само собой. Либо кто Вам мешает копировать файлы на время обновления в одну папку (если это не так часто происходит).skais675
Vlad skype: skais675 email: skais675@mail.ru
Сообщение отредактировал skais675 - Суббота, 04.02.2017, 19:55
У Вас получилось сделать, чтобы не было сообщения, которое предлагает изменить связи?
Да, создав два файла и выставив разрешения , все получилось. Но проблема теперь в другом, переношу эти же настройки на другой файл и все. Обновляться автоматом не хочет. Эти проблемы связаны (OLE и обновление связей), OLE тут особой роли не играет, но вносит свои ограничения.
У Вас получилось сделать, чтобы не было сообщения, которое предлагает изменить связи?
Да, создав два файла и выставив разрешения , все получилось. Но проблема теперь в другом, переношу эти же настройки на другой файл и все. Обновляться автоматом не хочет. Эти проблемы связаны (OLE и обновление связей), OLE тут особой роли не играет, но вносит свои ограничения.