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.