|
|||||||
Как я могу отправить данные из веб-запроса Excel после завершения запроса?
Время создания: 29.07.2019 23:53
Текстовые метки: VBA Web
Раздел: Разные закладки - VBA - VBA Web
Запись: xintrea/mytetra_db_adgaver_new/master/base/15633344510o1olf2i4j/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Как я могу отправить данные из веб-запроса Excel после завершения запроса? Как разработчик электронных таблиц, я пытаюсь сшить два набора строк: один из веб-запроса в собственный веб-сервис, а другой - набор ручных строк, добавленных пользователем электронной таблицы (а не я). Excel, встроенный в объект Web Query/Connections, предоставляет только два режима: я могу включить "Включить обновление фона", что делает асинхронный веб-запрос или снимите его. Если он не установлен, Excel зависает во время выполнения запроса, что нежелательно. Проверяя, что, как представляется, не существует какого-либо обратного вызова или события, доступного для уведомления, чтобы я мог работать против обновленных веб-данных. Есть ли другой способ сделать это? 0 event-handling events vba web-services excel mcw0933 06 окт. '15 в 16:04 источник поделиться В веб-запросе Excel используется объект, называемый QueryTable, для выполнения бизнеса по извлечению и отображению данных. Доступ к QueryTable можно получить с помощью VBA. И так же, как объект диаграммы, объект запроса имеет события, на которые можно ответить только с помощью ключевого слова WithEvents из класса, например: Private WithEvents MyQueryTable As QueryTable Private Sub MyQueryTable_AfterRefresh(ByVal Success As Boolean) 'Do your post processing here... End Sub +1 Excel Hero 06 окт. '15 в 16:45 источник поделиться Excel поддерживает возможность открытия URL-адреса в качестве другой книги Excel с помощью Workbooks.Open method : Из MSDN: Sub OpenUSDRatesPage() Dim objBK As Workbook Dim objRng As Range 'Open the page as a workbook. Set objBK = Workbooks.Open("http://www.x-rates.com/tables/USD.HTML") 'Find the Canadian Dollar cell. Set objRng = objBK.Worksheets(1).Cells.Find("Canadian Dollar") 'Retrieve the exchange rate. MsgBox "The CAD/USD exchange rate is " & objRng.Offset(-6, -1).Value End Sub Вызов синхронный, поэтому вы можете работать с результирующими данными в новой книге сразу после открытого вызова. Во время загрузки книги Excel отображает индикатор выполнения. Когда вы закончите, вы можете позвонить. Закрыть, чтобы закрыть книгу веб-данных. (например, для примера MSDN вы должны позвонить objBK.Close, когда закончите.) Предостережения об использовании этого подхода:
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|