Jak VBA wysyła żądanie asynchronicznego XMLHTTP?

Aby uzyskać dane z usługi sieciowej w Excelu, stworzyłem dodatek Excela, aby uzyskać funkcję; użytkownik wystarczy wpisać w komórce:=sendRequest("http://webservice.com")

Mam 2 pliki Excela, aby pokazaćsending request w dwóch metodach: 1.synchroniczny i 2.asynchroniczny

Wsync metoda, funkcja może wysyłać żądania i pobierać dane normalnie. Ale jeśli mymieć 100, 200 komórek że to zadzwoni, zajmie to Excelowi ogromną ilość czasu; co również sprawia, że ​​Exel jestnie respoding.

Moje obecne rozwiązanie tego problemu to wykorzystanieasync metoda jakponiżej kodu

Public Function sendAsyncRequest(URL)
    'other statement

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

Ale wartość komórki jest zawsze równa zero 0 zamiast powtórzonego tekstu.

Muszę użyć mojej klasy obsługi, aby ją powiązaćOnReadyStateChange zxmlHttpRequest object ustawić tekst odpowiedzi w komórce. Ale wtedy również usuwa formuły komórek.

Więc moje pytanie jestJak zmienić wyświetlany tekst komórki bez zmiany jej formuły?

Z zadowoleniem przyjmuję również inne rozwiązanie do wysyłania wniosków i zwracania wartości poniżejasync metoda.

questionAnswers(2)

yourAnswerToTheQuestion