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.