64 位用于调用脚本函数的 Excel VBA

我需要使用VBA脚本控件对象来调用 JavaScript函数,但它给了我一个“类未注册”错误。我从工具>参考中添加了微软脚本控制1.0,我需要调用JavaScript从这个休息API中获取JSON对象,以计算Excel宏中的值。

这篇文章告诉我,脚本控件仅适用于 32 位。我正在使用64位 Excel。我还尝试使用此链接中提到的方法,但由于VBA无法识别ActiveX对象,因此它不起作用

我的 Excel VBA 代码调用一个简单的 JS 函数:

Private Sub CommandButton1_Click()

    Dim jsObj As MSScriptControl.ScriptControl, result As Integer

    Set jsObj = CreateObject("MSScriptControl.ScriptControl")

    jsObj.Language = "JScript"

    With jsObj

        .AddCode ("function prod1(a,b){return a*b;}")

        result = .Run("prod1", 2, 3)

    End With

    MsgBox result

End Sub

我收到一个类未注册错误,用于行 设置 jsObj = 创建对象 (“MSScript控制.脚本控制”) 是否有另一种方法可以从 VBA 调用 JavaScript 函数?还是我错过了什么?


郎朗坤
浏览 301回答 1
1回答

森栏

不需要脚本控件对象:可以使用 XMLHTTP 和 VBA-JSON。例如:Public Sub Tester()    'Import the "JsonConverter.bas" file from     '     https://github.com/VBA-tools/VBA-JSON    'and add a reference to the Microsoft Scripting Runtime library    Dim http As Object, JSON As Object, i As Integer, o As Object, k    Set http = CreateObject("MSXML2.XMLHTTP")    http.Open "GET", "https://www.alphavantage.co/query?" & _          "function=CURRENCY_EXCHANGE_RATE&from_currency=USD" & _          "&to_currency=JPY&apikey=demo", False    http.Send    Debug.Print http.responseText    Debug.Print "-----------------------------------"    Set JSON = ParseJson(http.responseText)    Set o = JSON("Realtime Currency Exchange Rate")    For Each k In o.keys        Debug.Print k, o(k)    Next kEnd Sub
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript