Как обновить запрос в excel

Добавление данных и обновление запроса

Фотография устройства Surface Book

Наконец, добавьте данные в источник данных и обновите их в Excel. Power Query автоматически применяет каждое созданное преобразование. Это означает, что вам нужно создать запрос только один раз, а затем выполнить его в любое время.

  1. Добавьте три строки данных в текущую таблицу «Данные о продажах». Чтобы подтвердить формулу вычисления премии, добавьте одну запись стоимостью более 25 000 рублей.

    Яблоки

    Андрей Седини

    2/14/19

    25,000

    Груши

    Ян Котасс

    2/14/19

    35,000

    Кружки

    Ольга 365

    2/14/19

    15,000

  2. Завершив ввод данных, выберите конструктор таблиц и >обновить все.

    После того как Excel завершит обновление данных, подтвердить результаты на листах данных продаж PQ.

    Примечание   Если вы вводите новые данные вручную или копируете и в добавляете их, убедитесь, что они были добавлены на исходный, а не на таблицу Power Query.
     

Нужна дополнительная помощь?

Хитрости »

12 Январь 2023              914 просмотров


С выходом Power Query в массы все чаще стал появляться вопрос: как обновить запросы один за другим в заданном порядке?

Если еще не работали с этой надстройкой и не знаете что это такое, то для начала лучше ознакомиться со статьей: Power Query — что такое и почему её необходимо использовать в работе?
Описание проблемы

В книге может быть десять и более запросов. И только 4 из них надо обновлять постоянно, да еще и в заданном порядке. Например, у нас есть с десяток запросов по продажам, отгрузкам и прочей аналитике, но только 4 из них нам надо обновить. При этом обновить надо в строгой последовательности:

«Запрос — Отделы», «Запрос — Сотрудники», «Заказы и Продажи», «Запрос — Бюджет»

. При этом обязательно необходимо, чтобы «Запрос — Бюджет» обновился последним, т.к. он зависит от всех остальных.

Какие есть варианты решения?

  • Вручную
  • Кнопка Обновить все(Refresh All)
  • Написать собственный порядок обновления через Visual Basic for Applications

 
Что еще может пригодиться в решении задачи:

  • Вывести список имен имен всех подключений на лист

Обновление вручную

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


Данные -Обновить все

Кнопка Данные(Data)Обновить все(Refresh All) не просто обновляет все без исключения запросы в книге, но и порядок запросов при этом никак не определить, следовательно мы не можем быть уверены в том, что обновление произошло именно в нужном нам порядке. Но все же не станем отбрасывать этот вариант как не рабочий — если проблема лишь в порядке обновления, то решение все же есть.
На самом деле, если мы имеем дело с Power Query, то правильнее всего выстраивать все взаимосвязи уже на стадии создания этих запросов в любом случае. Т.е. создавать их в правильной последовательности и «затягивать» данные в основной запрос в самую последнюю очередь, ориентируясь на результаты вспомогательных запросов. Это оптимальный вариант, т.к. в этом случае достаточно будет просто обновить нужный запрос, а Power Query сама определит какие вспомогательные запросы необходимо обновить для корректного результата. При этом встроенный механизм Power Query достаточно хорошо справляется с кешированием данных и даже если обновление происходит через кнопку Обновить все(Refresh All), то даже если на один и тот же вспомогательный запрос будет завязано несколько других — он будет обновлен лишь один раз, а не при обновлении каждого запроса.
Но здесь у нас опять же возникает проблема — если нам не надо обновлять все запросы в книге — как Power Query узнает, какие из них надо обновлять, а какие нет? Ответ — никак. Поэтому хоть и следует всегда стараться выстраивать цепочки взаимодействий запросов в «правильном» порядке — нашу проблему с обновлением только части запросов это никак не решит. В этом случае можно создать мастер запрос, в который просто через объединение запросов собирать все нужные. И обновление этого запроса должно инициировать обновление всех указанных в нем запросов со всеми их цепочками. Как создать подобный мастер запрос:

Все, запрос готов. Теперь достаточно обновить только его, чтобы все связанные запросы обновились. Правда, есть одна проблема: если данных много, то такой запрос их увеличит вдвое — ведь мы в один запрос собираем все остальные…


Собственный порядок обновления через Visual Basic for Applications

В решении через мастер-запрос есть одна проблема — запросы могут быть не только Power Query, но и более старых версий. Здесь вариантов вообще не остается — только Visual Basic for Applications. Да и в случае, если запросы уже созданы ранее кем-то еще или навыков создать мастер-запрос нет.

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Код обновляет поочередно указанные запросы в заданном порядке
'---------------------------------------------------------------------------------------
Sub RefreshConnections()
    Dim oc, xQuery, aConnections, xConName
    Dim IsBG_Refresh As Boolean
    'создаем перечисление всех запросов, которые надо обновить
    'располагаем их в том порядке, в котором необходимо обновлять
    aConnections = Array("Запрос — Отделы", "Запрос — Сотрудники", "Заказы и Продажи", "Запрос — Бюджет")
    'перебираем и обновляем все запросы поочередно
 
    For Each xConName In aConnections
        Set oc = ActiveWorkbook.Connections(xConName)
        Set xQuery = Nothing
        Select Case oc.Type
        Case Excel.XlConnectionType.xlConnectionTypeODBC
            Set xQuery = oc.ODBCConnection
        Case Excel.XlConnectionType.xlConnectionTypeOLEDB
            Set xQuery = oc.OLEDBConnection
        Case Else
            'запрос выгружен в таблицу на листе
            If oc.Ranges.Count > 0 Then
                Set xQuery = oc.Ranges(1).QueryTable
            End If
        End Select
        'непосредственно обновление запроса с ожиданием окончания обновления
        If Not xQuery Is Nothing Then
            'запоминаем значение обновления в фоне для запроса
            IsBG_Refresh = xQuery.BackgroundQuery
            'выставляем принудительно ждать завершения запроса
            xQuery.BackgroundQuery = False
            'обновляем запрос
            xQuery.Refresh
            'возвращаем обновление в фоне в первоначальное состояние
            xQuery.BackgroundQuery = IsBG_Refresh
        End If
    Next
End Sub

Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA(Alt+F11) —InsertModule. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt+F8 -выделяем RefreshConnectionsВыполнить(Run).
Чтобы использовать приведенный код для своих запросов достаточно в строке:

aConnections = Array("Запрос — Отделы", "Запрос — Сотрудники", "Заказы и Продажи", "Запрос — Бюджет")

внутри Array() перечислить в кавычках через запятую все имена запросов, которые необходимо обновить. Перечислять надо сразу в том порядке, в котором их требуется обновлять.
Код обновляет не только запросы Power Query, но и запросы более старых версий, выгруженных просто на лист.


Вывести список всех запросов в книге на лист

Что делать, если

я не знаю, как правильно называются запросы

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

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Код выводит на лист все запросы в текущей книге
'---------------------------------------------------------------------------------------
Sub GetAllConnections()
    Dim ws As Worksheet
    Dim lr As Long
    Dim oc, aList()
    'создаем массив для запоминания имен всех запросов
    ReDim aList(1 To ActiveWorkbook.Connections.Count, 1 To 1)
    For Each oc In ActiveWorkbook.Connections
        lr = lr + 1 'увеличиваем счетчик
        aList(lr, 1) = oc.Name
    Next
    'создаем новый лист, в который записываем имена всех запросов
    Set ws = ActiveWorkbook.Worksheets.Add(before:=ActiveWorkbook.Worksheets(1))
    'оформляем заголовок(для эстетики)
    ws.Cells(1, 1).Value = "Имя запроса"
    ws.Cells(1, 1).Font.Bold = True
    'записываем имена всех запросов
    ws.Cells(2, 1).Resize(lr, 1).Value = aList
End Sub

Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

 

Loksana

Пользователь

Сообщений: 24
Регистрация: 24.03.2018

Добрый вечер!

Скажите, есть ли макрос, который мог бы обновить и запрос в Power Query и одновременно сводную таблицу на основании запроса PQ ?

 

Михаил Л

Пользователь

Сообщений: 2640
Регистрация: 19.02.2020

Loksana, надеюсь вы знаете что надо сначала обновить запросы, а потом сводные

Посмотрите

 

Loksana

Пользователь

Сообщений: 24
Регистрация: 24.03.2018

Спасибо, Михаил!
Да, именно сейчас так и делаю, сначала запрос, а потом сводную. Но думала, может есть один макрос.
Ну значит нет (

Изменено: vikttur10.10.2021 21:32:04

 

Михаил Л

Пользователь

Сообщений: 2640
Регистрация: 19.02.2020

#4

10.10.2021 21:22:26

Цитата
Loksana написал:
значит нет

Ну как нет. Вам надо попробовать разобраться с кодом.
Вот так у меня в рабочем файле

Код
Public Wb As Workbook
Sub aaa()
    Set Wb = Workbooks.Open(Filename:="C:UsersuserDesktoptempОтчет по реализации ежедневно.xlsx")
    Sheets("Медпреды_Выполнение плана").Activate
     
    Set oc = ActiveWorkbook.Connections("Запрос — Источник_к_данным")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
        
    Set oc = ActiveWorkbook.Connections("Запрос — Поступление_Сегодня")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    Set oc = ActiveWorkbook.Connections("Запрос — Поступление_за_месяц")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    Set oc = ActiveWorkbook.Connections("Запрос — За месяц")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    Set oc = ActiveWorkbook.Connections("Запрос — За сегодня")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    Set oc = ActiveWorkbook.Connections("Запрос — процент от плана")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    Set oc = ActiveWorkbook.Connections("Запрос — по региону")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    
    ActiveSheet.PivotTables("Сводная таблица2").PivotCache.Refresh
   ' Sheets("Медпреды_Выполнение плана").PivotTables("Сводная таблица2").PivotCache.Refresh
   ' Sheets("Медпреды_Выполнение плана").Select
    
    Excel.ActiveWorkbook.Save
    Excel.ActiveWorkbook.Close
End Sub

НА МЯСО В ПРОФИЛЕ

 

Loksana

Пользователь

Сообщений: 24
Регистрация: 24.03.2018

Спасибо большое! Сейчас попробую.

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Дамы и господа, я вас решительно обоих не понимаю. Зачем это все?
Если сводная сделана на основе таблиц, которые являются результатом работы запросов PQ тогда понятно почему, но не понятно зачем так организовано.
Если же у вас сводная основана на внешнем подключении из запроса PQ то все и так обновляется одновременно и запрос и сводная.
Короче, на лицо путаница в терминах.
Есть запрос, это всего лишь набор правил на языке М, который объясняет экселю где взять данные и что с ними сделать
Есть таблица, в которую можно выводить результат запроса. И потом по этой таблице строится сводная. (ЗАЧЕМ так усложнять?)
Есть модель данных, в которую также можно выводить результат запроса
Есть кэш сводной обычной таблицы, в которую можно выводить результат запроса, и тогда сводная обновится вместе с запросом
Есть сводная таблица на основе модели данных Power Pivot, аналогично обновляется одновременно с запросами.
Loksana, какой из вышеперечисленных случаев ваш.

Изменено: PooHkrd11.10.2021 09:53:59

Вот горшок пустой, он предмет простой…

 

Xel

Пользователь

Сообщений: 393
Регистрация: 17.10.2014

#7

11.10.2021 11:16:42

Цитата
PooHkrd написал:
но не понятно зачем так организовано.

Например, у части адресатов  информации установлен древний эксель без надстроек.
Тогда сводные PP для него будут просто нефункциональными картинками.

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#8

11.10.2021 11:54:57

Xel, повторяю

для тех, кто в танке

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

Такая сводная будет функционировать и на древнем экселе, только обновить данные не получится, впрочем, как и в описанном вами случае.

Вот горшок пустой, он предмет простой…

 

Михаил Л

Пользователь

Сообщений: 2640
Регистрация: 19.02.2020

#9

11.10.2021 12:10:58

Цитата
PooHkrd написал:
Зачем это все?

Ну мне экономит телодвижения)
Как было раньше — Открываю отчет и вручную по очереди обновляю запросы, затем сводные.
Как сейчас — В отдельном файле жму кнопку Обновить и лицезрею обновление таблиц.  

НА МЯСО В ПРОФИЛЕ

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#10

11.10.2021 12:20:59

Цитата
Михаил Л написал:
по очереди обновляю запросы

Это значит «обновляю таблицы на листах, а эти таблицы служат как источник сводной?»

Вот горшок пустой, он предмет простой…

 

Михаил Л

Пользователь

Сообщений: 2640
Регистрация: 19.02.2020

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

 

Наталия

Пользователь

Сообщений: 54
Регистрация: 28.10.2020

почитала топик и слегка запуталась
а PQ запросы зачем надо обновлять? (у меня тянут данные из текстовиков, которые сами обновляются 1 раз в день)
я жму в сводной таблице «обновить все» и все свеженькие данные подтягиваются

 

Михаил Л

Пользователь

Сообщений: 2640
Регистрация: 19.02.2020

#13

11.10.2021 14:30:12

Цитата
PooHkrd написал:
сводная основана на внешнем подключении из запроса PQ

И вправду)

Цитата
Loksana написал:
и запрос в Power Query и одновременно сводную

У вас запрос PQ выгружает данные в Excel?
Или не выгружает в Excel(выбрана галочкой Только подключение), но выгружает в Модель данных. И сводная уже по модели данных. Тогда достаточно ПКМ по сводной -> Обновить.

НА МЯСО В ПРОФИЛЕ

Это продолжение перевода книги Кен Пульс и Мигель Эскобар. Язык М для Power Query. Главы не являются независимыми, поэтому рекомендую читать последовательно.

Предыдущая глава    Содержание    Следующая глава

По мере того, как вы создаете все больше и больше решений на основе Power Query, и начинаете понимать, сколько времени это экономит, вы захотите еще большей автоматизации. Да, вы можете просто щелкнуть правой кнопкой мыши таблицу, которая была импортирована с помощью Power Query, но даже это ощущается как… ручная операции. Нельзя ли запланировать обновление или, возможно, контролировать порядок обновления?

На самом деле вы можете использовать несколько различных методов автоматизации обновления решений Power Query:

  • Обновление при открытии книги
  • Обновление каждые Х минут
  • Обновить соединение по требованию с помощью VBA
  • Обновить все соединения по требованию с помощью VBA
  • Использовать расписание обновлений в сторонней надстройке

Ris. 16.1. Nastrojka parametrov podklyucheniya

Рис. 16.1. Настройка параметров подключения

Скачать заметку в формате Word или pdf, примеры в формате архива

Планирование обновлений без использования кода

Первые два метода работают через пользовательский интерфейс и не требуют кода VBA. Они могут быть настроены на основе подключения, и вы даже можете автоматизировать обновление вплоть до Power Pivot. Откройте файл Automating Refresh.xlsx. Перейдите на вкладку Данные –> Запросы и подключения. В правой части окна Excel откроется область Запросы и подключения. Кликните правой кнопкой мыши имя запроса –> Свойства. Откроется окно Свойства запроса (рис. 1).

Обратите внимание, что флажок Фоновое обновление установлен по умолчанию. Этот параметр позволяет указать, следует ли продолжать работать в Excel во время обновления данных. Если вы снимите этот флажок, вы можете потенциально уменьшить время, необходимое для обновления вашего решения, но вы также заблокируете пользовательский интерфейс, что означает, что вы не сможете делать другие вещи, пока обновление запроса не будет завершено. Желательно оставить этот параметр включенным.

Следующий параметр – Обновлять каждые ХХ минут. Этот параметр очень пригодится, если вы извлекаете данные из веб-источника, который постоянно меняется, или если вы ориентируетесь на базу данных, которая регулярно обновляется. Для того, чтобы это обновление произошло книга Excel должна быть открыта. Допустимые значения для этого параметра – от 1 до 32 767.

Обновлять при открытии книги. Второй параметр в этом разделе – Удалять данные из внешнего диапазона перед сохранением книги. Установите этот флажок, если вы хотите сохранить книгу с определением запроса, но без использования внешних данных. Снимите этот флажок, чтобы сохранить, и определение запроса, и данные. Этот флажок, будет доступен только после установления флажка Обновлять при открытии книги.

Автоматизация обновления запросов с помощью VBA

Приемы, описанные выше, и не использующие макросы, обходятся без каких-либо окон, предупреждающих о безопасности. Кроме того, такие книги легче переносить в Power BI, так как они не вызывают никаких проблем с блокировкой. Однако если вы работаете исключительно в настольном экземпляре Excel, иногда может потребоваться предоставить пользователю удобный и очевидный способ обновления решений Power Query. Это может быть сделано с помощью записи кода VBA.

Можно создать макрос для обновления одного подключения Power Query. В файле Automating Refresh.xlsx и перейдите на лист Transactions. На листе расположена Таблица Transactions, а также сводная таблица. Допустим, вы хотите создать макрос для обновления их обеих. Перейдите на вкладку Разработчик. Если вы не видите вкладку Разработчик, щелкните правой кнопкой мыши любую вкладку на ленте и выберите Настроить ленту. В правом окне установите флажок рядом с вкладкой Разработчик и нажмите Ok. На вкладке Разработчик нажмите кнопку Запись макроса. Также можно нажать иконку в левом нижнем углу окна Excel:

Ris. 16.2. Knopka Nachat zapis makrosa

Рис. 16.2. Кнопка Начать запись макроса

Как только вы нажмете эту кнопку, Excel начнет записывать каждый щелчок листа, каждое нажатие клавиши и… каждую ошибку, которую вы делаете. Выполните в точности следующие действия. Дайте макрос Refresh и сохраните его в текущей книге. Пройдите по меню Данные –> Запросы и подключения –> В правой части окна Excel в области Запросы и подключения кликните правой кнопкой мыши на запросе Transactions –> Обновить. Щелкните правой кнопкой мыши любую ячейку сводную таблицу –> Обновить. Повторно кликните кнопку, как на рис. 16.2. Запись макроса будет остановлена. Проверьте код. Пройдите по меню Вид –> Макросы:

Ris. 16.3. Makrosy

Рис. 16.3. Макросы

Нажмите Изменить. Откроется окно редактора VBA

Ris. 16.4. Kod VBA

Рис. 16.4. Код VBA; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Добавьте кнопку для обновления макроса. Перейдите на вкладку Разработчик –> Вставить –> Кнопку:

Ris. 16.5. Vstavit element upravleniya Knopku

Рис. 16.5. Вставить элемент управления Кнопку

Выберите место на листе, и удерживая левую кнопку мыши, нарисуйте прямоугольник для Кнопки. Отпустите левую кнопку мыши. Появится окно с предложением поставить в соответствие Кнопке макрос. Выберите Refresh. Нажмите Ok. Щелкните правой кнопкой мыши по Кнопке –> Изменить текст. Введите Обновить. Щелкните любую ячейку на листе, чтобы выйти из режима редактирования названия кнопки.

Ris. 16.6. Knopka podklyuchennaya k makrosu

Рис. 16.6. Кнопка, подключенная к макросу

Обновление нескольких запросов

Теперь можно добавить иные запросы в макрос. Пройдите по меню Разработчик –> Макросы –> Refresh –> Изменить. На данный момент код имеет вид (см. также рис. 16.4):

Sub Refresh()

Refresh Макрос

    ActiveWorkbook.Connections(«Power Query — Transactions»).Refresh

    Range(«J6»).Select

    ActiveSheet.PivotTables(«Сводная таблица1»).PivotCache.Refresh

End Sub

Первые четыре строки после Sub Refresh() – это просто комментарии. Сейчас в них нет смысла, так что можно их удалить. Строка, начинающаяся с ActiveWorkbook, обновляет запрос. В следующей строке выбирается ячейка на активном листе. Предпоследняя строка обновляет сводную таблицу на активном листе.

Вы можете внести некоторые изменения в этот макрос, чтобы не только контролировать порядок обновления всех соединений, но и сделать код немного более надежным. (Сейчас код потерпел бы неудачу, если бы кто-то попытался запустить его из другого рабочего листа, так как на нем не было бы сводной таблицы.) Вот как должен выглядеть усовершенствованный код:

Sub Refresh()

   ActiveWorkbook.Connections(«Power Query — Jan2008»).Refresh

   ActiveWorkbook.Connections(«Power Query — Feb2008»).Refresh

   ActiveWorkbook.Connections(«Power Query — Mar2008»).Refresh

   ActiveWorkbook.Connections(«Power Query — Transactions»).Refresh

   Worksheets(«Transactions»).PivotTables(«PivotTable1»). _

      PivotCache.Refresh

End Sub

Символы пробела и подчеркивания используются для обозначения разрыва строки в коде VBA. Код будет работать, если PivotCache.Refresh останется в той же строке (без переноса). Вот только длинные строки плохо размещать на картинках)) Использование Worksheets("Transactions") вместо ActiveSheet более универсально.

Имена подключений должны совпадать с именами, которые можно увидеть в диалоговом окне Существующие подключения:

Ris. 16.7. Sushhestvuyushhie podklyucheniya

Рис. 16.7. Существующие подключения

Поскольку теперь книга включает макрос, вы не можете сохранить ее в формате XLSX. Вместо этого сохранить книгу в формате XLSM. При открытии книги пользователи получат предупреждение системы безопасности.

Обновление всех запросов

Чтобы обновить все запросы Power Query, необходимо использовать несколько иной код. Следующий макрос будет просматривать все подключения в книге и обновлять те из них, что созданы Power Query (и игнорировать остальные):

Public Sub UpdatePowerQueriesOnly()

   Dim lTest As Long, cn As WorkbookConnection

   On Error Resume Next

   For Each cn In ThisWorkbook.Connections

      lTest = InStr(1, cn.OLEDBConnection.Connection, _

         «Provider=Microsoft.Mashup.OleDb.1»)

      If Err.Number <> 0 Then

         Err.Clear

         Exit For

      End If

   If lTest > 0 Then cn.Refresh

Next cn

End Sub

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

Имейте в виду, что этот код не обязательно обновит запросы в том порядке, в котором они должны быть обновлены, так как Excel обновляет запросы в алфавитном порядке. Если порядок обновления важен, пройдите по меню в Данные –> Существующие подключения. Откроется окно Существующие подключения (см. рис. 16.7). Кликните на подключении правой кнопкой мыши –> Изменить свойства подключения. Откроется окно Свойства запроса. Последовательно измените имена запросов, например, на такие 01-Jan2008, 02-Feb2008, 03-Mar2008, 99-Transactions. Теперь запросы будут обновляться в нужном порядке.

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK
  • YouTube
  • VK

Ссылка:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

Мы хотим при помощи VBA обновить запросы выборочно. Напишем несколько простых VBA скриптов.

В первом скрипте мы просто научимся выводить на лист Excel названия всех подключений.

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

Для третьего скрипта мы предварительно создадим таблицу Excel с перечнем запросов для обновления.

Код

Код для вывода на лист Excel всех запросов в книге:

Sub ShowConnections()
    
    Dim Connection As WorkbookConnection
    
    rn = 1
    
    For Each Connection In ThisWorkbook.Connections
        Range("A" & rn).Value = Connection.Name
        i = i + 1
    Next Connection
    
End Sub

Код для обновления запросов выборочно с указанием запросов, которые обновлять не надо:

Sub RefreshConnections()
    Dim Connection As WorkbookConnection
    
    For Each Connection In ThisWorkbook.Connections
        If Not Connection.Name = "Запрос — pop_1" Then
            Connection.Refresh
        End If
    Next Connection
    
End Sub

Код, для которого мы предварительно создали таблицу с перечнем запросов к обновлению:

Sub RefreshSelectively()
    Dim Connection As WorkbookConnection
    Dim rng_Refresh As Range
    
    Set rng_Refresh = Range("Обновить_Запросы[Обновить_Запросы]")
    
    For Each Connection In ThisWorkbook.Connections
        If Not rng_Refresh.Find(Connection.Name) Is Nothing Then
            'MsgBox rng_Refresh.Find(Connection.Name).Address
            Connection.Refresh
        End If
    Next Connection
End Sub

Курс Power Query + VBA

Номер урока Урок Описание
1 Power Query + VBA №1. Обновить запросы выборочно, обновить все запросы кроме одного В этом уроке мы научимся выборочно обновлять запросы в книге Excel с помощью VBA.
2 Power Query + VBA №2. Путь к файлу папке при помощи VBA В этом уроке вы узнаете как задать путь к файлу-источнику для Power Query при помощи VBA.
3 Power Query + VBA №3. Обработать и сохранить много файлов В этом уроке вы узнаете как по очереди обработать и сохранить каждый нужный вам файл. Это еще один распространенный способ применения VBA в связке с Power Query.
4 Power Query + VBA №4. Обработать множество ссылок по одной В этом уроке вы узнаете как обработать большое количество web-страниц по одной, чтобы избежать ошибок и разрывов.

Управление обновлением внешних ссылок (связей)

​Смотрите также​ другом расширении, а​ 12:04, в сообщении​ №2. Например: «=ЕСЛИОШИБКА(ВПР($B14;’\mainplanningplanning​ данными, но уже​Сделайте обратный ход​ бы обновление происходило​ ������ �������� ������​ �� ������. �​ том случае, если​Создание связи​

Дополнительные сведения о внешних ссылках

​.​нажмите кнопку​ кнопкой​Формулы​На вкладке​Параметры​При создании внешних ссылок​ именно как «Двоичная​ № 1200?’200px’:»+(this.scrollHeight+5)+’px’);»>сейчас файл​ 2014Controlфайл№2.xlsx.xlsb]матрица’!$A:$RG;143;ЛОЖЬ);0)»​ несколько в другом​для дополнительной информации​ по запросу.​ ����.​ 2007 ��������� ������​

Книга, содержащая связи

​ связь является действительной.​. Дополнительные сведения см.​

​При импорте нескольких таблиц​Параметры​Параметры вставки​в группе​

​Данные​в области сведений​ (также называемых связями)​ книга Excel», потому​

Управление связями с другими книгами

​ №1 открывается ОЧЕНЬ​Ekaterina​ ракурсе​Дмитрий​Даже не знаю,​:(​ �������� ��� �������.​Если алгоритм автоматического обнаружения​ в разделе Создание​ Excel пытается обнаружить​и выберите категорию​, а затем​Определенные имена​в группе​ о документе, а​ можно задать для​ что насколько я​ долго​: Poltava, тогда может​

Ручное обновление всех (или никаких) связей в книге

  1. ​Дано: 2 файла​: Добрый вечер. У​ что произошло, я​����� �� �����​ �������� � ���,​

  2. ​ предлагает связь, которая​

  3. ​ связи между двумя​ и определить связи​​Дополнительно​​ выберите команду​нажмите кнопку​Подключения​​ затем выберите команду​​ них поддержку и​

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

  1. ​ знаю, это немного​

  2. ​Странно, что вообще​

  3. ​ подскажете, какие именно​​ Эксель. В одном​​ меня такой вопрос.​​ только установил офис​​ ��� � ����​​ ��� �������� ����​​ не решает бизнес-задачи,​

    Подключения к данным

  4. ​ таблицами.​​ между этими таблицами,​​.​Значения​

    ​Диспетчер имен​нажмите кнопку​Включить это содержимое​ расписание обновления. В​

    ​ облегчает файл и​ открывается.​

  5. ​ макросы? Я честно​​ из них (назовём​​ При использовании функции​

Управление выдачей запроса на обновление всех связей

​ 2007 и в​ ��������?​ ������ ����������, ��​

Отключение выдачи запроса на обновление связей данной книги и обновление связей вручную

​ то необходимо удалить​​Автоматическое обнаружение связей запускается​ поэтому нет необходимости​В Excel 2007 нажмите​.​.​Изменить связи​.​ случае изменения значения​

  1. ​ сокращает время зависания.​​Вам в Вашей​​ говоря в макросах​​ его №1) есть​​ ВПР в книге​​ настройки все стоят​​dlimon​

  2. ​ � ������ ��​​ ее и создать​​ только для мер​

  3. ​ создавать связи вручную​

​ кнопку Microsoft Office​​Нажмите кнопку​В столбце​.​Закройте все книги.​ в ячейке приложение​Цитата​​ пред. теме написали,​

Настройка обновления связей по запросу при открытии файла

​ не сильна. Умею​ ссылки с формулами​​ «1»(условно) данные беру​​ по умолчанию, может​

Если никакие связи не создавались

  1. ​: Сегодня перешел с​​ ������ ��������…​​ вручную с использованием​​ и не запускается​​ или создавать сложные​​, щелкните​​Не обновлять​

  2. ​Имя​​Нажмите кнопку​​Откройте книгу, содержащую связи.​

  3. ​ Microsoft Excel не​​_Boroda_, 29.10.2013 в​ что нужно делать.​ делать только самые​​ на второй файл​

​ из книги «2»,​ в реестре что-то.​ экселя 2003 на​Serge​ верного ключевого столбца.​ для вычисляемых полей,​ обходные решения, чтобы​Параметры Excel​. Обновление из источника​выберите имя, которое​Запрос на обновление связей​

Разрыв связей с источником

​На вкладке​​ выполняет поиск нового​ 12:57, в сообщении​ Неужели Вы думаете,​ простые, те которые​ (№2). Т.е. данные​ при этом, при​ Не знаете, где​ 2007. И сразу​: � ���������� ��������​ См.​​ которые используются в​

  1. ​ работать с данными​​и выберите категорию​​ при отсутствии подключения​​ следует удалить, и​​.​​Данные​​ значения, если это​

  2. ​ № 7200?’200px’:»+(this.scrollHeight+5)+’px’);»>Вам в​​ что за несколько​​ с помощью автоматического​ в №1 формируются​

    • ​ открытии книги «1»​ в реестре посмотреть​ столкнулся с проблемой.​ ���� ������ ��​

    • ​К началу страницы​ метках строк и​

  3. ​ целостным способом.​​Дополнительно​​ к нему невозможно.​

  4. ​ нажмите кнопку​Щелкните​в группе​

    ​ не задано пользователем.​

  5. ​ Вашей пред. теме​​ дней Майкрософт придумал​​ записывания делаются, и​​ путём забирания их​​ данные обновляются автоматически,​​ опции экселя?​​ У меня много​

  6. ​ ������������� ����?​​�?горь​​ столбцов сводной таблицы.​Иногда Excel не удается​.​​ Например, если книга-источник​​Удалить​

  7. ​Не отображать оповещение и​Подключения​Книга, содержащая связи, называется​ написали, что нужно​ что-то новое? Вернее,​ которые соответственно получаются​ из №2. Возникла​

Замена одной формулы ее вычисляемым значением

​ без запроса. Всё​Файл удален​ документов содержат ссылки​�?горь​: ����� ��� �����������…​ Поэтому перед началом​ определить связь между​В разделе​​ расположена в сети,​ Кнопка ​.​

  1. ​ не обновлять автоматические​
    ​нажмите кнопку​ книгой назначения, а​ делать. Неужели Вы​ что-то новое, что​
    ​ косячными и не​​ проблема с обновлением​

    1. ​ перепробовал, но никак​- велик размер​

    2. ​ на внешние файлы.​​: …� ������� ��​​����� ���� 2010​​ построения сводной таблицы​​ таблицами. В этом​​Общие​​ а подключение к​​Если используется диапазон внешних​​ связи​

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

  2. ​ данных. Когда открываешь​​ не получается снять​​ — [​​ Раньше при открытии​​ ��� ���������, ��​​ ��� ���� �​ Выноска 4​ несвязанные таблицы можно​

  3. ​ случае используйте информацию​​снимите флажок​ Изображение кнопки​ сети отсутствует.​

  4. ​ данных, параметр запроса​.​​.​ Выноска 4​ установлена связь, называется​ несколько дней Майкрософт​​ старого.​ Изображение кнопки​ записать макрос чуть​

Если известно, что подключение к исходному файлу отсутствует

​ №1 (в момент​​ автоматическое обновление. Есть,​​МОДЕРАТОРЫ​ таких документов эксель​ ������ ������, �​ �������. ����� �����������​ добавить, однако связи​ из этой статьи​Запрашивать об обновлении автоматических​

Если требуется работать с имеющимися данными, а не заменять их новыми

​Нажмите кнопку​​ может также использовать​​Возможно, связь была создана​

Если обновление в последний раз заняло слишком много времени

​Из списка​​ исходной книгой. Если​​ придумал что-то новое?​Ekaterina​ сложнее, чем просто​ когда №2 закрыт),​ конечно, вариань поставить​]​ спрашивал обновить ссылки​​ �� � ��​​ 2007 ������. �​​ не будут видны​​ для устранения ошибок​​ связей​​Не обновлять​ данные из другой​ случайно путем перемещения​

Если эта книга создана другим пользователем и вы не знаете, почему появился этот запрос

​Источник​​ открытая книга (конечный​​ Вернее, так: «что-то​: Да, очень много​ форматирование ячеек например​ то все ячейки,​ общий ручной пересчёт,​​Артем​​ или нет. Сейчас​​ ������ ��������. ���​​ 2007 ��� ���������​​ до тех пор,​​ автоматического обнаружения связей. Чтобы​

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

​. Если этот флажок​.​ книги. Может потребоваться​ или копирования диапазона​

​выберите связанный объект,​ файл) содержит связи​​ новое, что было​

​ данных. Как я​Ekaterina​ в которых есть​ но это неудобно,​: так «предупреждение системы​ появляется предупреждение системы​ ���� � �������​

  1. ​ ������� ����� ����������​​ пока поле не​​ лучше понять требования​​ снят, связи будут​​Нажмите кнопку​​ проверить и удалить​​ ячеек, листа или​

    ​ который необходимо изменить.​ с другими книгами​Изображение кнопки Office​ бы лучше старого».​​ и говорила.​​: Johnny, задача в​​ связь с №2​​ сами понимаете. Подскажите​

  2. ​ безопасности «Автоматическое обновление​​ безопасности «автоматическое обновление​​ ������ �������� �����​​ ������������� — �������​ будет перемещено в​​ и механизмы обнаружения​ обновляться автоматически (без​Не обновлять​ эти типы связей.​

​ диаграммы из одной​Для выделения нескольких связей​​ или файлами (которые​

​Из предыдущей темы​​Цитата​ том, чтобы при​ обозначаются как «знач».​ пожалуйста, как включить​ ссылок отключено»» -​ ссылок отключено». Я,​ ���� �� ����������​ ���������� — ���������​

  1. ​ область​​ связей, см. раздел​​ выдачи запроса).​​. Если не требуется​​В Excel формула удаляется​​ книги в другую.​​ щелкните каждый связанный​

  2. ​ называются исходными файлами),​​ я не поняла,​​_Boroda_, 29.10.2013 в​

  3. ​ открытии файла №1,​

​ А если при​​ запрос на обновление.​ это и есть​ конечно, могу войти​

Если известно, что исходный файл доступен для подключения к нему

​ ��������… ��� ���​​ ������������ ��� ������​​Значения​ Связи между таблицами​Одинаковый запрос для всех​

Если используется параметрический запрос

​ получение текущих данных,​ при замене на​ Откройте книгу, а​

  1. ​ объект, удерживая нажатой​​ а исходные файлы​​ что нужно делать​

  2. ​ 12:57, в сообщении​

  3. ​ выскакивало окошко: «обновить​

  4. ​ этом открыть файл​

  5. ​ Спасибо.​​ запрос, не пойму,​​ в раздел «изменить​

support.office.com

Устранение неполадок в связях между таблицами

​ ��, ����������� !����​ � ����� -​.​ в модели данных.​ пользователей этой книги​ можно сэкономить время,​ возвращаемое значение. Чтобы​ затем найдите ненужные​ клавишу CTRL.​ изменятся, то связи​

​ :(, поэтому просто​ № 7200?’200px’:»+(this.scrollHeight+5)+’px’);»>плюс к​ связи с внешними​ №2, то только​Айболит​ чем принципиально это​ связи» и обновиться​ ������ ������ ��������,​ ������ �� ��������������​Иногда таблицы, добавляемые в​На панели уведомлений всегда​    ​

Сообщение. Связи не были обнаружены

​ не обновляя все​ отменить случайную замену​ связи и разорвите​Чтобы выделить все связи,​ в открываемой книге​​ убрала половину ссылок​​ этому​ данными?» я бы​ тогда во всех​: Все довольно просто:​ отличается от 2003​ вручную, но это​ � ��� �������​ ���������� ������​ сводную таблицу, просто​ автоматически отображается сообщение​Предупреждение:​

  • ​ связи. После открытия​ формулы ее значением,​ их или замените​ нажмите клавиши CTRL+A.​ могут указывать на​ на файл№2 и​Цитата Ekaterina, 29.10.2013​ отвечала «да»​ этих ячейках появляются​ СЕРВИС-ПАРАМЕТРЫ-ВЫЧИСЛЕНИЯ-ВРУЧНУЮ. При этом​ экселя? У вас​

  • ​ не рационально. В​ ������ ������ (��������������).​Guest​ невозможно соединить с​ о необходимости установления​ Этот режим влияет на​ книги нажмите на​ немедленно после ввода​ их значениями.​Нажмите кнопку​ устаревшие данные.​ заменила их значениями,​ в 12:45, в​​И вот только​​ правильные обновлённые значения.​ пересчет по ф9​ же есть выбор​ параметрах экселя стоит​

В сводную таблицу добавлены несвязанные поля, однако сообщение не выдается

​ =(((​: ��. ����. �������������​ другими таблицами. Например,​ связи при перетаскивании​ всех пользователей книги.​ вкладке​ или вставки значения​Важно:​Обновить значения​1. Конечная книга содержит​ что очень для​ сообщении № 4​ в этом случае​ Но мне нужно,​stuf​ обновлять или нет.​​ галочка на «запрашивать​​�?горь​

Отсутствует допустимая связь между таблицами

​ ����� post_187218.JPG (58.02​ две таблицы могут​ поля в область​ Если отключить обновление​Данные​ нажмите кнопку​ При разрыве связей с​.​ внешние ссылки.​ меня плохо​

​;’\main​ все связи обновлялись​ чтоб можно было​: Та же проблем.​Guest​ на обновлении автоматических​: � ���������� ��������​ ��)​ иметь частично совпадающие​Значения​ связей и выдачу​в группе​

При автоматическом обнаружении созданы неверные связи

​Отменить​ источником все формулы,​Можно настроить автоматическое обновление​2. Внешняя ссылка (или​Теперь время раздумывания​все на сети​ бы, а в​ нажать кнопку условно​ Только когда я​: Так это и​ связей», в меню​ ���� ������ ��​�?горь​ данные, но не​существующей сводной таблицы​ запроса, пользователи этой​Подключения​.​ использующие источник, заменяются​ связей при запуске​ связь) представляет собой​

​ над каждой операцией​ лежит​ остальных случаях не​ «обновить», и чтоб​ копирую всю папку​ есть запрос? Я​ «изменить связи» включено​ ������������� ����?{/post}{/quote}​

​: ��, ����� «������������​

support.office.com

�������� ��������������� ���������� ������ � Excel 2010

​ иметь логических связей​​ в случае, если​
​ книги не будут​кнопку​Выделите ячейку с формулой.​ на их текущее​ или после запуска.​ ссылку на диапазон​ немного сократилось. Но​Да, на сети.​ обновлялись, чтоб компьютер​ при закрытом файле​ с комплектом книг​ думал, при открытии​

​ «пользователь указывает…», параметры​​����…​ ������ �������». ��​ с другими используемыми​

​ это поле не​​ знать, что данные​Изменить связи​Если формула является​ значение. Например, связь​Предупреждение:​ ячеек в книге-источнике.​ в этой теме​ Потому что впоследствии​ не подвисал, когда​ №2 все данные​ он берет старые​ файла появиться вопрос​

​ безопасности для связи​​�� 2007��� ������​ � ����������. ������​ таблицами.​ связано ни с​ устарели.​, а затем обновите​ формула массива, выделите​ =СУММ([Бюджет.xls]Годовой!C10:C25) будет заменена​ Этот режим влияет на​

​3. Книга-источник содержит ячейку,​​ вопрос в другом.​ нужно будет, чтобы​

​ не нужно.​​ в №1 обновились.​ с салке а​ «Обновить связи -​ в книге включен​ �� ������ ��������​ �� �������� ������������​Если добавить в сводную​ одним из существующих​На вкладке​ связи только с​ диапазон ячеек, содержащих​ на =45. Эту​ всех пользователей книги.​ значение из которой​ Как сделать так,​ много-много людей на​

​_Boroda_​​ И при этом​ не те что​ Да или Нет».​

​ «запрос на автоматическое​​ ��������� ������ ��������…​ �� ���������. ��������​ таблицу таблицу, которую​ в сводной таблице​Данные​ нужными исходными файлами.​ формулу массива.​ операцию нельзя отменить,​ Если отключить обновление​ загружается и помещается​ чтоб данные в​ разных компьютерах могли​: Я охреневаю, дорогая​ есть параллельная задача:​

​ в текучей папке.​​Я​ обновление связей в​� 2010 ����​
​ ��� �� ���������..​
​ нельзя соединить с​ полей. Однако иногда​в группе​
​Нажмите кнопку​Выбор диапазона, содержащего массив​ поэтому стоит сохранить​ связей и выдачу​

​ в конечную книгу.​​ файле №1 обновлялись​ вносить изменения в​ редакция!​ сейчас файл №1​

​ система просит автоматических​​: Отключение запроса на​ книге». При этом​

​ ����� ������ �​

​ �� ����� ������​​ другой таблицей, то​ связь после уведомления​Подключения​Не обновлять​   ​ версию файла​ запроса, пользователи этой​Когда обе связанные книги​ при закрытом файле​ незащищённые области файла​RG — это​ открывается ОЧЕНЬ долго​ обновлений с правильным​ обновление связей при​ при открытии документа​ ���������� �������� ��​ �������� ������ ��������​

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

planetaexcel.ru

Автоматическое обновление ссылок в Excel 2007 [ТЕМА ЗАКРЫТА — двойное нарушение — благодарим stuf]

​Щелкните любую ячейку в​​.​ книги не будут​ открыты на одном​ №2. Ну т.е.​ №1.​ 475-й столбец. Да​ как раз из-за​ путем (1рис.) но​ открытии книг и​ никаких запросов на​ ����​ !����. ��� ����​ не даст никаких​ Это может произойти​Изменить связи​ книги. Вы также​ диапазоне массив.​На вкладке​ знать, что данные​ компьютере, связи обновляются​ как сделать так,​Цитата​ еще по 1​ этих связей с​ когда я нажимаю​ автоматическое обновление связей​ обновление не выскакивает.​Z​ � 2007 ��������​ результатов. В других​ по разным причинам.​.​ можете выяснить, какие​
​На вкладке​Данные​ устарели.​ автоматически. Когда конечная​ чтоб при открытии​_Boroda_, 29.10.2013 в​ 048 576 строкам.​ №2. Можно сделать​ окей. и захожу​Этот режим задается​Как решить эту​: � ���� �����​

​ �����������. ��������, ���​​ случаях по результатам​Алгоритм обнаружения связей зависит​Нажмите кнопку​ связи находятся в​Главная​в группе​На вкладке​ книга открыта, а​ выскакивало окошко: «обновить​ 12:57, в сообщении​ Маленький такой, аккуратненький​ так, чтоб при​ на вкладку данные​
​ только для текущего​ проблему? И вообще​ ���������� (�����)? �������������​ ��������� ����������.​ в сводной таблице​ от внешнего ключевого​Запрос на обновление связей​ книге. На вкладке​в группе​Подключения​
​Данные​​ книга-источник не открыта,​ связи с внешними​​ № 7200?’200px’:»+(this.scrollHeight+5)+’px’);»>еще очень​​ диапазончик на почти​

​ каждом открытии файла​​ изменить связи то​ пользователя и влияет​ как настроитьсистему безопасности​ ����� post_187284.jpg (75.69​�?горь​ видно, что поля​ столбца, имя которого​.​Данные​Редактирование​

​нажмите кнопку​​в группе​ в области сведений​ данными?»​ любопытное название​ 500 млн. ячеек!​ данные не обновлялись?​

​ там не та​​ на все открываемые​ так, что бы​ ��)​: �������: �������� ���������​

​ не позволяют формировать​ схоже с именем​Выберите нужный режим.​в группе​нажмите кнопку​Изменить связи​Подключения​ о документе возможно​Johnny​Цитата Ekaterina, 29.10.2013​

​ И это только​ И чтоб они​ ссыка которую он​ книги. На работу​ она поменьше думала​

​Z​ � ����� xlsx​ осмысленные вычисления.​ первичного ключевого столбца.​Примечание:​Подключения​Найти и выделить​.​нажмите кнопку​
​ появление запроса на​
​: понятно, что сводной​

​ в 12:45, в​​ в одной формуле!​ не обновлялись при​ предлагал в начале​ других пользователей он​ сама, а побольше​: ��� ������ ������​ ��� xlsm… ���​При создании связей алгоритм​ Если имена столбцов​ При наличии разорванных связей​нажмите кнопку​и выберите команду​В списке​Изменить связи​ обновление связей. Можно​ у вас нет.​ сообщении № 4​плюс к этому​ любом измении в​ (2рис.)((​

​ не влияет. Этот​​ спрашивала, а я​ — �������� ���������?..​ �������������� ����� �​

​ автоматического обнаружения создает​​ недостаточно похожи, рекомендуется​ будет появляться оповещение​Изменить связи​Выделить группу ячеек​Источник​.​ задать режим вывода​ иначе бы и​файл№2.xlsx.xlsb​Цитата​ файле №1, а​stuf​ режим также применяется​ уже сам решу​Z. 56554​ xls ������ ����​ список всех возможных​ открыть окно Power​ об этом.​

​.​​.​
​выберите связь, которую​​Нажмите кнопку​ этого запроса, а​​ вопроса такого не​​Цитата Ekaterina, 29.10.2013​

​Ekaterina, 29.10.2013 в​​ ТОЛЬКО тогда, когда​
​: 1рис​​ к связям с​ обновлять мне связи​​mrMad-Cat​​ ����� �� �����������​

planetaexcel.ru

Регулировка обновлений связей с внешними данными (Формулы)

​ связей исходя из​​ Pivot и вручную​Нажмите кнопку​Можно ответить на запрос​В диалоговом окне​ требуется разорвать.​:)
​Запрос на обновление связей​ также режим обновления​ возникло)​ в 12:04, в​ 12:45, в сообщении​ мне нужно?​Файл удален​ другими программами.​ и можно ли​: ����������� ������ ��������.​ ���� � 2010,​ значений, содержащихся в​ создать необходимые связи​Обновить​ и запретить его​Выделить группу ячеек​Для выделения нескольких связанных​.​ всех связей без​если вы принципиально​ сообщении № 1​ № 4200?’200px’:»+(this.scrollHeight+5)+’px’);»>;’​Большое спасибо!​- велик размер​1. Нажмите кнопку​ открывать файлы с​ ���� �� �����​ ����� �������� ���​ таблицах, и ранжирует​ между таблицами.​. Это позволит гарантировать​ вывод для этой​установите флажок​ объектов щелкните каждый​Выберите нужный режим.​ вывода запроса. Кроме​ не желаете пользоваться​сейчас файл №1​\​Johnny​ — [​ Microsoft Office Значок​ макросами и т.п.​ � ��� ����.​ ���.​ возможные связи в​Типы данных могут не​
​ наличие в книге​

​ книги в будущем.​​Текущий массив​

​ из них, удерживая​​Примечание:​

​ того, если книга​​ сводными таблицами,​ открывается ОЧЕНЬ долго​main​
​: забирайте данные сводной​МОДЕРАТОРЫ​ кнопки, щелкните Параметры​dlimon​ ������������ ����� ���������​Serge​ соответствии с их​

​ поддерживаться. Если любая​​ самых последних данных.​Не отображать запрос и​.​ нажатой клавишу CTRL.​ Даже если запретить Excel​ содержит несколько связей,​можно отключить в​Странно, что вообще​все на сети​Poltava​]​ Excel, а затем​: Запрос на обновление​ ����� — ����������​: �������� � �����​

​ вероятностью. Затем Excel создает​​ из таблиц, используемых​Связь с параметрическим запросом​ обновлять связи автоматически​На вкладке​Чтобы выделить все связи,​ выдавать запрос на​ можно обновлять только​:)​ настройках автоматическое обновление​ открывается.​ лежит​: макросы в помощь​stuf​ выберите категорию Дополнительно.​ не появляется. Вместо​ �������� ������. ������​

​ ���?​​ только наиболее вероятную​ в сводной таблице,​
​ нельзя обновить без​    ​Главная​ нажмите клавиши CTRL+A.​ обновление связей, пользователь​ некоторые из них.​ связей и обновлять​»файл№2″ — это​еще очень любопытное​
​Ekaterina​
​: 2рис​​2. В группе​ этого выскакивает на​ �������. ��� ����​​�?горь​​ связь. Поэтому, если​
​ содержит столбцы только​ открытия книги-источника.​
​Этот параметр влияет на​в группе​
​Щелкните элемент​​ будет получать сообщения​Закройте все книги. Если​ по мере необходимости:​​ я для форума​
​ название​​: Johnny, какой сводной?​Файл удален​ При расчете этой​ панели предупреждение системы​ � ���������� ������������​
​: ������� ������ �​ таблицы содержат несколько​
​ неподдерживаемых типов данных,​Нажмите кнопку​ все книги, которые​Буфер обмена​Разорвать​ о наличии разорванных​ одна книга-источник будет​в excel2010 Данные-Изменить​ изменила название. На​Цитата​

​ У меня нет​​- велик размер​ книги снимите флажок​ безопасности «Автоматическое обновление​
​ ������ �������� ���​​ �������� �����.. ������​ столбцов, которые могут​ то связи обнаружить​Не обновлять​
​ открываются на компьютере.​нажмите кнопку​.​
​ связей​
​ открыта, а остальные​ связи-Запрос на обновление​
​ самом деле название​Ekaterina, 29.10.2013 в​ никакой сводной.​ — [​ Запрашивать об обновлении​ ссылок отключено», а​ ���������� ������. �​ �������� ������. �​
​ использоваться в качестве​​ невозможно. В этом​.​ Пользователи, которые откроют​Копировать​
​имя связи автоматически не​.​ закрыты, обновления не​
​ связей-Не задавать вопрос​
​ другое. Или Вас​ 12:45, в сообщении​У меня в​
​МОДЕРАТОРЫ​ автоматических связей. Если​
​ когда я нажимаю​ �������� — ���​
​ ���� ����… ���​ ключей, некоторые связи​ случае необходимо создать​Закройте конечную книгу.​ книгу на другом​.​ удаляется, поэтому его​Существует несколько вариантов выбора​ будут одинаковыми.​ и не обновлять​ смущает «.xlsx.xlsb» ?​ № 4200?’200px’:»+(this.scrollHeight+5)+’px’);»>файл№2​ файле №1 в​]​ этот флажок снят,​ «Включить содержимое», то​
​ �������� �������� ��������,​​ ������ ���� ������​ могут получить более​ связи между активными​Откройте книгу-источник.​ компьютере, не будут​Нажмите кнопку​ может потребоваться удалить.​ в диалоговом окне​Откройте книгу, содержащую связи.​ связи​ Если это, то​.xlsx.xlsb​
​ ячейках находятся формулы,​Ekaterina​ связи будут обновляться​ происходит автоматическое обновление​ ��� � �����​ ��������… ��� ��​ низкий ранг и​ таблицами в сводной​Откройте конечную книгу.​:(​ затронуты.​Вставить​Удаление имени​Запрос на обновление связей​Чтобы обновить связи, нажмите​Ekaterina​ да, я сохранила​Цитата​ в которых есть​: Вопрос опять про​ автоматически (без выдачи​ связей. А очень​ �� ����� �������,​ ��� �������� �​ не будут автоматически​

​ таблице вручную в​​Нажмите кнопку​На вкладке​.​На вкладке​.​
​ кнопку​: Всем большое спасибо!​ этот файл в​
​Ekaterina, 29.10.2013 в​ связь с файлом​ связи с внешними​ запроса).​
​ хотелось бы, что​ � ����� ������​ ��������, ����� ���​ созданы даже в​ диалоговом окне​

​Обновить​​Файл​

excelworld.ru

​Нажмите стрелку рядом с​

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Ваш Excel-файл может иметь подключения к внешним источникам данных (веб-запросы, соединений MSQuery, сводные таблицы и так далее). В этих случаях было бы полезным иметь возможность автоматически обновить все связи в открытых книгах. Этот макрос представляет собой простой сценарий, который использует метод RefreshAll. Этот метод обновляет все связи в данной книге или на листе. Мы указываем всю книгу. 

Ссылка на это место страницы:
#formula

  1. Private Sub Workbook_Open()
  2. Workbooks(ThisWorkbook.Name).RefreshAll
  3. End Sub

Ссылка на это место страницы:
#kak

В данном макросе мы используем объект ThisWorkbook. Этот объект представляет собой простой и безопасный способ, чтобы указать на текущую книгу. Существует разница между Thisworkbook и ActiveWorkbook

— Объект ThisWorkbook ссылается на книгу, которая содержит код. 

— Объект ActiveWorkbook относится к книге, которая в данный момент активна. 

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

Ссылка на это место страницы:
#touse

Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Workbook_Open. Размещение макроса там позволяет ему запускаться каждый раз при открытии рабочей книги. 

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига
3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code 
4. В левой верхней части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open, если нет, то выполните п.5 
5. В правом верхнем выпадающем списке выберите событие Open

Ссылка на это место страницы:
#file

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

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Skip to content

Как обновить все связи в открытых книгах

На чтение 2 мин. Просмотров 4.2k.

Что делает макрос: Ваш excel-файл может иметь подключения к внешним источникам данных (веб-запросы, соединений MSQuery, сводные таблицы и так далее). В этих случаях было бы полезным иметь возможность автоматически обновить все связи в открытых книгах.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает это код
  4. Как использовать

Как макрос работает

Этот макрос представляет собой простой сценарий, который использует метод RefreshAll. Этот метод обновляет все связи в данной книге или на листе. В этом случае, мы указываем всю книгу.

Код макроса

Private Sub Workbook_Open()
'Используйте метод RefreshAll
Workbooks(ThisWorkbook.Name).RefreshAll
End Sub

Как работает это код

В данном макросе мы используем объект ThisWorkbook. Этот объект представляет собой простой и безопасный способ, чтобы указать на текущую книгу. Существует разница между Thisworkbook и ActiveWorkbook.

  • Объект ThisWorkbook ссылается на книгу, которая содержит
    код.
  • Объект ActiveWorkbook относится к книге, которая в данный момент активна.

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

Как использовать

Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Workbook_Open. Размещение макроса там позволяет ему запускаться каждый раз при открытии рабочей книги.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
  3. Нажмите кнопку ThisWorkbook.
  4. Выберите Открыть событие в Event раскрывающемся списке.
  5. Введите или вставьте код во вновь созданном модуле.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как обобщить ячейки в excel
  • Как обновить шрифты в word
  • Как обновить документ microsoft word
  • Как обнулить формулы в excel
  • Как обновить шаблоны в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии