Страницы: 1
RSS
Срабатывание vba за счет новых данных веб-запроса
 

Добрый день уважаемые эксперты excel.

Подскажите как можно запустить макрос или, к примеру вызвать диалоговое окно в случае изменении полученных данных путем веб-запроса? Может есть что-нибудь наподобие Worksheet_Change, только изменения происходят не путем ввода нового значения в ячейку, а за счет автоматического обновления веб-запроса.

Пример:

Существует сайт, где в режиме онлайн указывается примерное население земли (url: https://countrymeters.info/ru/World), подключился к сайту, далее с помощью power query оставил только значение населения земли, которое далее размещается и обновляется в ячейке A2. Тем самым, если в ячейке A2 после обновления данных веб-запроса появляется новое значение, то к примеру должно появиться всплывающее окно MsgBox "Новые данные".

 
Можно так (в модуль книги из примера к #1)
Код
Option Explicit
Dim WithEvents qt As QueryTable

Private Sub qt_AfterRefresh(ByVal Success As Boolean)
  MsgBox "Таблица обновлена"
End Sub

Private Sub Workbook_Open()
  Set qt = ThisWorkbook.Worksheets(1).ListObjects(1).QueryTable
End Sub
Владимир
 
sokol92,большое спасибо, ваш код работает, но к сожалению всплывающее окно появляется после каждого обновления данных в независимости от того значение таблицы изменилось или нет.
Может кто ни будь знает, как сделать так чтобы всплывающее окно появлялось после обновления запроса лишь только в том случае, если значение поменялось?
 
Код
Sub test()

arr1 = [Счетчик_населения_Земли].Value
ThisWorkbook.Worksheets(1).ListObjects(1).QueryTable.Refresh BackgroundQuery:=False
arr2 = [Счетчик_населения_Земли].Value

If arr1 <> arr2 Then MsgBox "Обновилось"

End Sub
 
kain,все отлично работает! Большое всем спасибо)))
Страницы: 1
Наверх