Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обновление связей только в выделенных ячейках, подскажите плиз 
V
    Опции темы
sergei3000
Дата 1.3.2006, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



никак не могу понять, возможно ли (а если возможно, то как) в exel сделать макрос, который обновлял бы внешние связи (с другими файлами excel через формулы) только в выделенных ячейках. ведь через стандартные опции программы можно обновить или все связи, или с отдельными файлами. а что делать, если мне нужно обновить связи не совсем файлом, на который есть ссылки в моём документе, а только те, что находятся в определённых ячейках? у меня есть масса тяжёлых и взаимосвязанных файлов, для работы с которыми мне это просто необходимо.
например, чтобы вычислить только выделенные ячейки, достаточно простого selection.calculate. есть методы update и refresh, но при попытке их использования выдаётся сообщение о том, что с этим объектом (selection) они не работают.


Это сообщение отредактировал(а) sergei3000 - 1.3.2006, 09:40
PM MAIL   Вверх
Akina
Дата 1.3.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Пороть! Розгами! Бездельник!

Что, трудно набрать "обновление связей" в строке поиска по встроенной справке Экселя???


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sergei3000
Дата 2.3.2006, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



очень смешно. а толку? незачот, короче.

стал бы я сюда обращаться, если бы справку сначала не перерыл???
PM MAIL   Вверх
Akina
Дата 2.3.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Да он еще и слепой... ну на..

Цитата(MS Excel Help @ раздел "Управление обновлением связей")

Частичное обновление связей с другими книгами

Закройте все книги.
Откройте книгу, содержащую связи.
Когда появится запрос на обновление связей, нажмите Не обновлять.
В меню Правка выберите команду Связи.
Из списка Источник выберите связанный объект, который необходимо изменить.
Для выделения нескольких связанных объектов, не отпуская клавишу CTRL, выберите каждый связанный объект.

Чтобы выделить все связанные объекты, нажмите CTRL+A.

Нажмите Обновить значения.


Предвосхищая следующий вопрос:

Сервис-Макрос-Запись


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Twwi
Дата 2.3.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.11.2005
Где: Домодедово

Репутация: 1
Всего: 5



Akina, Вы не поняли, нужно из одного источника не все формулы обновить.
К сожалению, чтобы сделать напрямую ничего мне не удалось найти.

Можно поизголяться..
В книге, в стороне от рабочей области создать два вспомогательных столбца. Первыйь - текущие значения формул (ну или предыдущее обновление), второй - формулы-линки на другие источники. Формулы в рабочей области будут ссылаться на первый столбец.
Далее, на открытие книги написать макрос, который будет переписывать текущие значения в первый столбец. ДАлее обновиться - обновиться второй столбец - рабочая область все еще будет ссылаться на значения до обновления.
Теперь написать макрос который по выделенным ячейкам определит от каких значений из первого столбца они зависят и переписать эти значения (в 1-м столбце) значениями из второго.

Но это называется изголяться. Скорее всего надо подумать над изменением структуры книг. Или может еще кто-нибуть что-нибудь подскажет..
PM MAIL ICQ   Вверх
Akina
Дата 2.3.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Twwi @ 2.3.2006, 12:31 Найти цитируемый пост)
Вы не поняли

Я все прекрасно понял.

первый шаг - надо научиться обновлять только выбранные связи. это описано цитатой из хелпа.
второй шаг - надо научиться делать это программно. это делается записью макроса выборочного обновления и последующим изучением полученного кода.

Остается сделать макрос под свои данные и запихать его в XLStart или навесить на кнопку.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sergei3000
Дата 3.3.2006, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



Цитата(Akina @ 2.3.2006, 11:49 Найти цитируемый пост)
Цитата(Twwi @ 2.3.2006, 12:31 )
Вы не поняли


Я все прекрасно понял.


в том-то и дело, что не понял. так что слепой здесь не я. если не понятно из моего первого поста, объясняю на примере (упрощенном, естессно). есть ячейки A1, A2, А3, В1, В2, В3. А1, А2, А3 ссылаются на ячейки в файле "книга1.xls"; ячейки В1, В2, В3 ссылаются на ячейки в файле "книга2.xls". мне нужно обновить только ячейки А1 и А2. ячейку А3 обновлять не нужно. если я сделаю это по цитируемой вами справке, обновятся все связи с файлом "книга1.xls", в том числе и А3, а это совсем не то, что нужно.


Цитата(Twwi @ 2.3.2006, 11:31 Найти цитируемый пост)
Но это называется изголяться.

это точно. рабочие области нередко изменяются или дополняются. каждый раз создавать вспомогательные ячейки, мягко говоря, не очень хочется. да и сейчас уже создано такое количество книг, что страшно подумать, сколько времени понадобится, чтобы переделать все внешние связи в них. так что и с изменением структуры книг тоже не получается
PM MAIL   Вверх
Akina
Дата 3.3.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(sergei3000 @ 3.3.2006, 07:54 Найти цитируемый пост)
если я сделаю это по цитируемой вами справке, обновятся все связи с файлом "книга1.xls", в том числе и А3

Тьфу. Действительно, слепой...

Тогда может попробовать что-нить типа

Код

ForEach Cell in Selection.Range.Cells()
   Cell.Update
next


?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Twwi
Дата 3.3.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.11.2005
Где: Домодедово

Репутация: 1
Всего: 5



Цитата

это точно. рабочие области нередко изменяются или дополняются. каждый раз создавать вспомогательные ячейки, мягко говоря, не очень хочется. да и сейчас уже создано такое количество книг, что страшно подумать, сколько времени понадобится, чтобы переделать все внешние связи в них. так что и с изменением структуры книг тоже не получается

можно еще помучиться и определить залинкованые ячейки по формулам (ADDRESS), тогда на них не будет влиять сдвиг ряда, ячейки.. Но если часто требуется добавление новый ячеек, придется взять карандаш с листочком и подумать у кого откуда ноги растут smile Удачи!

p.s. Cell.Update такого свойства к сожалению нет smile

Это сообщение отредактировал(а) Twwi - 3.3.2006, 10:18

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Book1.rar 1,46 Kb
PM MAIL ICQ   Вверх
sergei3000
Дата 3.3.2006, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



Цитата(Akina @ 3.3.2006, 10:13 Найти цитируемый пост)
Тогда может попробовать что-нить типа


код Visual Basic


не получается.
пишет "Wrong number of arguments or invalid property assignment". дебаггер при этом высвечивает первую строчку кода.

а с объектами Cells и Selection метод Update, кажется, не работает

2 Twii
Цитата(Twwi @ 3.3.2006, 10:14 Найти цитируемый пост)
Присоединённый файл ( Кол-во скачиваний: 0 )
  Book1.rar 1,46 Kb

что там? почему-то не скачивается, на странице надпись о том, что для гостей это недоступно, хотя я до этого залогинился
PM MAIL   Вверх
Akina
Дата 3.3.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



sergei3000, в качестве бреда - попробуй с ячейки в selection сперва считать формулу, а потом переприсвоить... просто не помню - при ссылке на другую книгу выполняется ли немедленный пересчет...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Twwi
Дата 3.3.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.11.2005
Где: Домодедово

Репутация: 1
Всего: 5



Прикрепляю доделанный файл, там готовый макрос, который на селекшен обновляет предыдущие записи обновленными.
На блюдечке с голубой каемочкой smile

добавлено - колонка с формулами ADDRESS вообще не нужна. прошу прощения, температура 38 smile

Это сообщение отредактировал(а) Twwi - 5.3.2006, 11:36

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Book1.rar 7,84 Kb
PM MAIL ICQ   Вверх
sergei3000
Дата 4.3.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



2 Twii

спасибо
не удаёца скачать файл отсюда. если можешь, отправь, плиз, на [email protected].
спасибо ещё раз
PM MAIL   Вверх
sergei3000
Дата 6.3.2006, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



а ларчик просто открывался!


Цитата(Akina @ 3.3.2006, 13:33 Найти цитируемый пост)
попробуй с ячейки в selection сперва считать формулу, а потом переприсвоить


спасибо за идею!

оказывается, достаточно всего лишь

Код

Sub updSel()
    Dim r As Range
    For Each r In Selection
        r.Formula = r.Formula
    Next r
End Sub


2 Twwi
тоже большое спасибо за участие!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.