zoukankan      html  css  js  c++  java
  • Json解析方式汇总 excel vba

    一. 这种方式比较复杂,因为office版本的原因,所以要加其它函数

     1 Private Function parseScript(strJson As String)
     2 
     3 Dim objJson As Object
     4 'With CreateObject("msscriptcontrol.scriptcontrol") '在64位office里可能无法创建此对象,所以使用x86的方法
     5 With CreateObjectx86("msscriptcontrol.scriptcontrol")
     6 
     7 .Language = "javascript"
     8 .addcode "var mydata =" & strJson
     9 Set objJson = .codeobject
    10 End With
    11 Set parseScript = objJson
    12 
    13 End Function
    14 
    15 Function parseJson()
    16 
    17 Dim objJson As Object
    18 Set objJson = parseScript("[{""name"":""choco"",""age"":21},{""name"":""anne"",""age"":27}],{""name"":""heming"",""age"":44}]")
    19 
    20 Dim objItem
    21 For Each objItem In objJson.mydata
    22 Debug.Print CallByName(objItem, "name", VbGet)
    23 Debug.Print CallByName(objItem, "age", VbGet)
    24 Next
    25 
    26 End Function
    27 
    28 Function CreateObjectx86(Optional sProgID, Optional bClose = False)
    29 Static oWnd As Object
    30 Dim bRunning As Boolean
    31 #If Win64 Then
    32 bRunning = InStr(TypeName(oWnd), "HTMLWindow") > 0
    33 If bClose Then
    34 If bRunning Then oWnd.Close
    35 Exit Function
    36 End If
    37 If Not bRunning Then
    38 Set oWnd = CreateWindow()
    39 oWnd.execScript "Function CreateObjectx86(sProgID): Set CreateObjectx86 = CreateObject(sProgID): End Function", "VBScript"
    40 End If
    41 Set CreateObjectx86 = oWnd.CreateObjectx86(sProgID)
    42 #Else
    43 Set CreateObjectx86 = CreateObject("MSScriptControl.ScriptControl")
    44 #End If
    45 End Function
    46 
    47 
    48 Function CreateWindow()
    49 Dim sSignature, oShellWnd, oProc
    50 On Error Resume Next
    51 sSignature = Left(CreateObject("Scriptlet.TypeLib").GUID, 38)
    52 CreateObject("WScript.Shell").Run "%systemroot%syswow64mshta.exe about:""about:<head><script>moveTo(-32000,-32000);document.title='x86Host'</script><hta:application showintaskbar=no /><object id='shell' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shell.putproperty('" & sSignature & "',document.parentWindow);</script></head>""", 0, False
    53 Do
    54 For Each oShellWnd In CreateObject("Shell.Application").Windows
    55 Set CreateWindow = oShellWnd.GetProperty(sSignature)
    56 If Err.Number = 0 Then Exit Function
    57 Err.Clear
    58 Next
    59 Loop
    60 End Function
  • 相关阅读:
    利用expect实现自动化操作
    svn项目权限控制
    linux jdk环境变量
    Google Authenticator加强ssh安全
    k8s之configmap配置中心
    .NET面试题目二
    .NET面试题目一
    经典.net面试题目(3)
    经典.net面试题目(2)
    经典.net面试题目(1)
  • 原文地址:https://www.cnblogs.com/cuteb/p/13364905.html
Copyright © 2011-2022 走看看