Страницы: 1
RSS
Освобождение объектов VBA Excel
 
Всем привет!
Использую "MSXML2.XMLHTTP.6.0" для получения прайса. Все работает прекрасно, за исключением одного, пока не закрою/открою Excel данные в получаемом ответе не обновляются. Вероятно, могу ошибаться, Excel держит это соединение открытым. Пробую метод abort, не помогает. Пробовал Set http = Nothing. Может есть мысли, как можно не закрывая Книгу, получать актуальные данные? Актуальность данных отслеживаю по дате в получаемом ответе.
Часть кода:
Код
Set http = CreateObject("MSXML2.XMLHTTP.6.0")
http.Open "GET", BaseAllUri & ClientDataStr, False
http.Send
Set JSON = ParseJson(http.responseText)
'...........
http.abort
MsgBox ("complete")
ThisWorkbook.Sheets("Stock+Price").Select
Exit Sub
 
 
Цитата
papaflash написал:
данные в получаемом ответе не обновляются
Данные кэшируются локально. Весь кэш браузера чистится, например, так:
CreateObject("wscript.shell").Run "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255", 0, True
С помощью API DeleteUrlCacheEntry можно чистить кэш конкретного URL.
 
Цитата
написал:
Данные кэшируются локально. Весь кэш браузера чистится, например, так:CreateObject("wscript.shell").Run "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255", 0, TrueС помощью API DeleteUrlCacheEntry можно чистить кэш конкретного URL.
Спасибо за подсказку, почистить кэш! Ваш пример от части понятен, но пока сложновато для меня. Порылся в информации по кэшу, нашел ETag.
В заголовок добавил поиск на совпадение ETag(которого на сервере нет):
Код
Set http = CreateObject("MSXML2.XMLHTTP.6.0")
http.Open "GET", BaseAllUri & ClientDataStr, False
http.setRequestHeader "If-None-Match", "\""doesnt-match-anything\"""
 
Цитата
papaflash написал:
сложновато
Просто добавьте эту строку в начале кода:
Код
CreateObject("wscript.shell").Run "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255", 0, True
Страницы: 1
Наверх