亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

64 位用于調用腳本函數的 Excel VBA

64 位用于調用腳本函數的 Excel VBA

郎朗坤 2022-09-16 21:35:24
我需要使用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 resultEnd Sub我收到一個類未注冊錯誤,用于行 設置 jsObj = 創建對象 (“MSScript控制.腳本控制”) 是否有另一種方法可以從 VBA 調用 JavaScript 函數?還是我錯過了什么?
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

不需要腳本控件對象:可以使用 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 k


End Sub


查看完整回答
反對 回復 2022-09-16
  • 1 回答
  • 0 關注
  • 284 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號