是否可以在VBA中对函数调用进行分组?

问题描述 投票:2回答:1

我有一个看起来像这样的函数:

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调用,然后立即返回所有数据?

我有一个看起来像这样的函数:公共函数GetData(DataType As String)As String Dim Client as New WebClient Client.BaseUrl =“ http:// url / to / get / data” Dim Response As ...] >

excel vba function excel-vba
1个回答
0
投票

您可以在模块中使用全局变量来缓存和重复使用已下载的数据。

第一个使用简单的Collection易于理解的示例:

© www.soinside.com 2019 - 2024. All rights reserved.