Como o VBA envia uma solicitação Async XMLHTTP?
Para obter dados de um webservice no Excel, criei um addin do Excel com a função de obtê-lo; usuário só precisa digitar na célula:=sendRequest("http://webservice.com")
Eu tenho 2 arquivos excel para demonstrar osending request
em dois métodos: 1.síncrono e 2.assíncrono
Emsync
método, a função pode enviar solicitação e obter dados normalmente. Mas se nóstem 100, 200 células como é chamado, o Excel demorará muito tempo esperando; que também faz com que o Exel sejanão respode.
Minha solução atual para isso é usarasync
método comoabaixo do código
Public Function sendAsyncRequest(URL)
'other statement
' Get some stuff asynchronously.
xmlHttpRequest.Open "GET", URL, True
xmlHttpRequest.send
sendAsyncRequest = xmlHttpRequest.responseText
End Function
Mas o valor da célula é sempre zero, em vez de texto repsone.
Eu devo usar minha classe de manipulador para ligá-lo comOnReadyStateChange
doxmlHttpRequest object
para definir o texto de resposta na célula. Mas também elimina as fórmulas das células.
Então minha pergunta éComo alterar o texto de exibição da célula sem alterar sua fórmula?
Saúdo também outra solução para enviar pedido e obter valor de retorno sobasync
método.