Выпуск № 796 от 06.06.2009, 17:35
Администратор рассылки: Ерёмин А.А., Советник
В рассылке: подписчиков - 528, экспертов - 295
В номере: вопросов - 1, ответов - 2
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 168696: Добрый день! Уважаемые эксперты, существует ли возможность обновлять даные нескольких книг Excel одновременно? (Обновление всех сведений из источника данных). Спасибо....
Вопрос № 168696:
Добрый день! Уважаемые эксперты, существует ли возможность обновлять даные нескольких книг Excel одновременно? (Обновление всех сведений из источника данных). Спасибо.
Отвечает Megaloman, Практикант :
Здравствуйте, Арутюнов Дмитрий Эрнестович. Напишем для решения Вашей задачи Макрос. Привожу пример макроса.
Код:
Sub Макрос1()
Sheets("Лист1").Select ' Выбираем рабочий лист Range("B5").Select
' Выбираем левую верхнюю ячейку области обновляемых данных Selection.QueryTable.Refresh BackgroundQuery:=False ' Обновляем данные
Sheets("Лист2").Select ' Выбираем рабочий лист Range("С8").Select ' Выбираем левую верхнюю ячейку области обновляемых данных Selection.QueryTable.Refresh BackgroundQuery:=False
' Обновляем данные
Sheets("Лист3").Select ' Выбираем рабочий лист Range("F1").Select ' Выбираем левую верхнюю ячейку области обновляемых данных Selection.QueryTable.Refresh BackgroundQuery:=False ' Обновляем данные
' И так далее
End Sub
То есть в макросе последовательно выбираем рабочие листы, на которых надо обновить данные (соответственно,
в кавычках пишем реальные названия листов книги), в листе выбираем клетку, находящуюся в диапазоне обновляемых данных на листе (я предпочитаю выбрать левую верхнюю ячейку области обновляемых данных) Обновляем данные.
Сколько обновляемых листов, столько и блоков из приведенной последовательности в макросе.
Можно то же самое написать и короче (и работать будет быстрее), на каждый лист одна строка в макросе
<
div>Код:
Sub Макрос1()
Sheets("Лист1").Range("B5").QueryTable.Refresh BackgroundQuery:=False ' Обновляем данные Sheets("Лист2").Range("C8").QueryTable.Refresh BackgroundQuery:=False ' Обновляем данные Sheets("Лист3").Range("F1").QueryTable.Refresh
BackgroundQuery:=False ' Обновляем данные
' И так далее
End Sub
В принципе, я получил полуфабрикат этого макроса с помощью Сервис - Макрос - Начать запись Затем я вручную для листов проделываю необходимые действия, останавливаю запись, Сервис-Макрос-Выбираю записанный мной макрос - Изменить - Привожу, что получилось, в порядок.
Макросу можно назначить горячую клавишу (Например, Ctrl o), для чего С
ервис-Макрос-Выбираю записанный мной макрос - Параметры Единственное, выбирайте незадействованное системои и Excel сочетания во избежание конфликтов.
Если у Вас данные выбираются иным способом, воспользуйтесь автозаписью макроса, а далее - приводите его в порядок.
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Практикант
Ответ отправлен: 01.06.2009, 18:45
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250198
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Shapoklak, Старший модератор :
Здравствуйте, Арутюнов Дмитрий Эрнестович. Можно настроить полное автоматическое обновление всех связей (указываю для Office 2003): 1) Сервис - Параметры - Правка - Запрашивать об обновлении автоматических связей (снимите флажок). 2) И дополнительно, если потребуется (для каждой книги, но достаточно указать для одного источника в списке): Правка - Связи - Запрос на обновление связи - Не задавать вопрос и обновлять связи.
Приложение: Россия, Орск Организация: школа Адрес сайта:школа №56 г. Орска ICQ # 101137510
Ответ отправил: Shapoklak, Старший модератор
Ответ отправлен: 01.06.2009, 19:09
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250199
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.