You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA运行时错误'13'类型不匹配:读取JSON字段nonVariableListPrice报错

错误原因

  • 该报错和JSON转换器无关,是代码遍历逻辑和返回的JSON结构不匹配导致的:你调用其他API时返回的是JSON数组,VBA-JSON会解析为集合,遍历集合拿到的是每个子对象(字典类型),所以不会报错;但本次API返回的JSON根节点是单个字典对象,不需要嵌套循环遍历。
  • 你写的For Each item41 In Json61遍历的是字典的键名(字符串类型),尝试对字符串调用item41("nonVariableListPrice")自然触发类型不匹配错误。

修正方案

把你原来从For Each check41 In Json61开始的整段循环替换为以下代码即可:

' 直接判断字典中是否存在目标键,无需遍历
If Json61.Exists("nonVariableListPrice") Then
    ' 加CDbl转换避免格式问题,同时处理空值
    home3.Cells(vp, 8).Value = CDbl(Json61("nonVariableListPrice"))
Else
    home3.Cells(vp, 8).Value = "NO DATA"
End If
vp = vp + 1

额外优化建议

  • 如果后续遇到返回JSON根节点是数组的场景,才需要用For Each遍历集合中的每个字典对象
  • 可以在赋值前加IsEmpty/IsNull判断,避免后续出现1004赋值错误
  • 建议每次调用完API后先判断返回的HTTP状态码是否为200,再做JSON解析,避免解析无效响应内容出错

内容的提问来源于stack exchange,提问作者Raiden Choong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:45:03