Wie sendet VBA eine Async XMLHTTP-Anfrage?

Um Daten von einem Webservice in Excel abzurufen, habe ich eine Excel-Add-In-Bereitstellungsfunktion erstellt. Benutzer muss nur die Zelle eingeben:=sendRequest("http://webservice.com")

Ich habe 2 Excel-Dateien zum Demostrieren dersending request in zwei Methoden: 1.synchron und 2.asynchron

Imsync Methode kann die Funktion normalerweise eine Anfrage senden und Daten abrufen. Aber wenn wirhaben 100, 200 Zellen Wenn Sie es so nennen, wird Excel sehr lange warten müssen. das macht auch exel sonicht respodieren.

Meine derzeitige Lösung hierfür ist zu verwendenasync Methode alsunter Code

Public Function sendAsyncRequest(URL)
    'other statement

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

Der Wert der Zelle ist jedoch immer Null 0 anstelle von repsone-Text.

Ich muss meine Handler-Klasse verwenden, um sie zu bindenOnReadyStateChange vonxmlHttpRequest object um den Antworttext in die Zelle zu setzen. Dann werden aber auch die Formeln der Zellen gelöscht.

Also meine Frage istWie ändere ich den Anzeigetext einer Zelle, ohne die Formel zu ändern?

Ich begrüße auch eine andere Lösung, um Anfrage zu senden und Rückgabewert unter zu erhaltenasync Methode.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage