VBA將Json數(shù)據(jù)提取到Excel

Json常用來存儲(chǔ)數(shù)據(jù),使用ScriptControl對(duì)象方法將Json數(shù)據(jù)提取到Excel中。

代碼如下:

Sub?JsonToRng()? ??

Dim?sJson$,?js$

sJson?=?Range("A1") '?JSON?數(shù)據(jù)在A1

js?=?"var?r,k,row=c=1,d={};for(r?in?j){row++;for(k?in?j[r]){if(!d[k]){d[k]=c++;rng(1,d[k])=k;}rng(row,d[k])=?j[r][k];}}"

js?=?"j="?&?sJson?&?";"?&?js

With?CreateObject("ScriptControl")

.Language?=?"JScript"

.AddObject?"rng", Range("A3")? '?A3?是起始單元格,可以改為別的單元格

.eval?(js)

End?With

End?Sub


JS說明

//j= sJson , rng 是用 AddObject 加入的單元格

var r, k,

? ? row = c = 1, //起始單元格的相對(duì) 行、列 偏移

? ? d = {}; //空字典

for (r in j) {

? ? row++; //行 偏移

? ? for (k in j[r]) {

? ? ? ? if (!d[k]) {? //如果key不存在,則添加 key 和 標(biāo)題行

? ? ? ? ? ? d[k] = c++; //列 偏移 和 key 相關(guān)聯(lián)

? ? ? ? ? ? rng(1, d[k]) = k; //把key寫到 標(biāo)題行

? ? ? ? }

? ? ? ? rng(row, d[k]) = j[r][k]; //把Value寫到 單元格

? ? }

}


注:以上代碼來自網(wǎng)絡(luò)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容