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

Excel O365 VBA调用JsonConverter.ParseJson报子程序未定义编译错误

故障排查及解决步骤

1 优先排查变量声明问题

你当前代码中仅声明了inJson变量,但实际赋值时使用的是未声明的Json变量:

' 现有声明
Dim inJson As Object
' 现有赋值(变量名不匹配)
Set Json = JsonConverter.ParseJson(http.responseText)

如果代码顶部开启了Option Explicit,会直接触发编译错误,修改方式为统一变量名即可:

' 要么修改声明
Dim Json As Object
' 要么修改赋值语句
Set inJson = JsonConverter.ParseJson(http.responseText)

2 解决Dictionary引用冲突问题

你同时添加了Microsoft Scripting Runtime引用、导入了自定义Dictionary.cls,二者功能重复会触发命名冲突,按以下二选一配置即可:

  • 方案A(推荐,兼容性更好):删除项目中导入的Dictionary.cls类模块,打开JsonConverter.bas,找到顶部的编译常量配置,修改为:
    #Const UseScriptingDictionary = 1
    
    直接使用系统自带的Scripting.Dictionary,无需额外配置自定义类。
  • 方案B(使用自定义Dictionary类):移除已添加的Microsoft Scripting Runtime引用,选中导入的Dictionary.cls,在属性窗口将其Instancing属性修改为2 - PublicNotCreatable。

3 其他注意事项

如果修改后仍有运行时解析错误,检查WinHttp返回的编码是否正确:你返回的内容中存在®这类乱码,是因为WinHttp默认以ASCII编码读取UTF-8返回结果,可修改请求代码手动指定编码解析返回内容,避免JSON解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:51:01