繁体   English   中英

加载VBA JSON变量,然后使用Excel公式在单元格中引用它

[英]Loading VBA JSON variable then referencing it in Cells using Excel Formulas

我的excel文档中有一个事件按钮,该事件按钮使用此链接中的一种技术加载JSON文档: 是否有VB6 / VBA的JSON解析器?

这将基于以下JSON字符串在vb脚本中创建一个JSON变量供我使用:

{
    "a": 1,
    "b": [
        13,
        1.4142135623730951,
        15
    ]
}

我可以轻松地使用VBA脚本加载页面。 但...

如何在单元格的公式内使用Json? 是否存在这样做的东西? $VARIABLE_LOOKUP(Json)("a")在单元格中获得值1

任何人都可以在这种情况下正常工作的世界场景吗?

Excel doc屏幕截图,更加清晰

  • 点击命令按钮
  • 它加载了Json
  • 现在, A5的公式的计算结果应为1

能做到吗

此excel文档中的代码示例位于此处: https : //drive.google.com/file/d/0B540RQ1Nj-KINnVQS3cwMDFsc1E/view?usp=sharing

答案:您可以使用在自己的模块中定义的自定义函数来执行此操作。

创建一个模块,为json添加全局变量和一个设置它的方法(您的按钮将被点击):

Private jsObj As Object

Public Function SetJsObj(jsonString As String)
    jsObj = JSON.parse(jsonString)
End Function

Public Function GetJsObj()
    GetJsObj = jsObj
End Function

使用json解析器VB6 / VBA是否有JSON解析器?

然后在单元格中使用该函数:

=GetJsObj()("a")

现在将评估为

1

一种解决方案是创建一个UDF以评估任何表达式:

Public Function Eval(expression As String)
  Application.Volatile
  Eval = Application.Evaluate(expression)
End Function

然后在您的公式中:

=Eval("JSON.parse(Json)(""a"")")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM