У меня есть функция, которая выглядит примерно так:
Public Function GetData(DataType As String) As String
Dim Client As New WebClient
Client.BaseUrl = "http://url/to/get/data"
Dim Response As New WebResponse
Set Response = Client.GetJson(DataType)
GetInstruments = Response.Data("data")
End Function
Это простой HTTP GET, который возвращает значение на основе аргумента.
Моя проблема заключается в том, что я пытаюсь выполнить эту функцию одновременно для множества различных ячеек в Excel (т. Е. =GetData(A$1
), что приводит к сотням HTTP-вызовов, что очень медленно.
Есть ли способ, которым в VBA я могу перехватывать вызовы функций, чтобы я мог затем сделать один быстрый вызов HTTP и затем вернуть все данные сразу?