Как VBA отправляет асинхронный XMLHTTP-запрос?

Чтобы получить данные из веб-службы в Excel, я создал функцию предоставления надстройки Excel для ее получения; пользователю просто нужно ввести в ячейку: =sendRequest("http://webservice.com")

У меня есть 2 файла Excel, чтобы продемонстрироватьsending request двумя способами: 1.синхронный и 2.асинхронный

Вsync Метод, функция может отправлять запрос и получать данные в обычном режиме. Но если мыhave 100, 200 cells что называется, Excel займет огромное количество времени ожидания; что также делает Exel бытьnot respoding.

Мое текущее решение для этого заключается в использованииasync метод каккод ниже

Public Function sendAsyncRequest(URL)
    'other statement

    ' Get some stuff asynchronously.
    xmlHttpRequest.Open "GET", URL, True
    xmlHttpRequest.send
    sendAsyncRequest = xmlHttpRequest.responseText
End Function

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

Я должен использовать свой класс обработчика, чтобы связать его сOnReadyStateChange изxmlHttpRequest object установить текст ответа в ячейку. Но затем он также очищает клетки ». формулы.

Итак, мой вопросHow to change the display text of cell without changing its formula?

Я также приветствую другое решение, чтобы отправить запрос и получить возвращаемое значение вasync метод.

Ответы на вопрос(2)

Ваш ответ на вопрос