ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

VBA-JSON完整指南:一个文件让Excel与Access快速解析JSON,2分钟跑通首个示例

2026/8/19 9:47:13 拓冰建站 浏览量
VBA-JSON完整指南:一个文件让Excel与Access快速解析JSON,2分钟跑通首个示例 VBA-JSON完整指南一个文件让Excel与Access快速解析JSON2分钟跑通首个示例【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON周五晚上9点半你盯着满屏的JSON数据发呆——API接口明明把订单信息都返回了可你的Excel就是读不进来只能复制粘贴手工拆一干就是一整晚。这种数据看得见、VBA用不了的尴尬正是VBA-JSON这个免费开源库要解决的问题它让Excel、Access等Office应用原生支持JSON解析与生成整个核心只有一个文件导入即用Windows与Mac通吃。好消息是这个坑今天就能填平。三问三答先搞清楚它是什么、凭什么信它第一问VBA-JSON是什么——一个帮你翻译JSON的工具箱先把概念说人话。JSON看起来像天书其实它只是一张格式固定的快递单{收件人:张三,包裹:[书,笔]}。左边是键右边是值用冒号连着大括号装对象、方括号装列表。任何系统只要按这个格式填单其他系统就能看懂。VBA-JSON就是专门教VBA读懂和填写这种快递单的工具箱。它的全部核心功能由两个主角函数撑起ParseJson把JSON文本翻译成VBA能直接使用的字典Dictionary与集合Collection对象ConvertToJson反向操作把VBA里的字典、数组、日期再打包成JSON文本。对比一下旧方法以前你得用InStr、Mid这些字符串函数手工劈开每个冒号和逗号遇到嵌套结构更是灾难现在一句JsonConverter.ParseJson(json文本)就完事剩下的取值就像翻字典一样自然。第二问为什么选它——一个文件就是它最大的诚意市面上的JSON方案不算少但要么要装重量级插件要么只在Windows能用要么文档劝退。VBA-JSON把复杂度砍到了极致零依赖部署核心只有JsonConverter.bas一个文件导入即用不用注册DLL、不用装组件跨平台兼容Windows、Mac上的Excel 2007、Access等Office应用都能跑条件编译自动适配系统差异细节开箱即用内置UTC与ISO日期互转函数ParseUtc、ParseIso等处理API时间戳不必再自己拼字符串。如果说别的方案是让你推着一台服务器跑那VBA-JSON就是递给你一把趁手的小扳手——要拧的螺丝正好拧得动。第三问凭什么信它——出身靠谱测试齐全信任感要靠证据有来头它脱胎于经典项目vba-json并作为知名VBA生态组件VBA-Web的一部分持续迭代修掉了原版多个bug、大幅优化了性能有测试仓库里的specs/Specs.bas是一套完整测试套件覆盖对象、数组嵌套、布尔值、null、多级结构等大量边界情况改代码不怕改出毛病有实战当前版本v2.3.1在Windows Excel 2013与Excel for Mac 2011上验证通过向下兼容2007。背景了解了下面进入动手环节。实战闯关从0到1跑通你的第一个JSON第一关·环境准备3步装好工具箱第1步 拿源码打开命令行执行git clone https://gitcode.com/gh_mirrors/vb/VBA-JSON第2步 导入文件在Excel/Access里按AltF11打开VBA编辑器菜单文件 → 导入文件选中项目里的JsonConverter.bas第3步 配字典库最容易漏的一步Windows用户到工具 → 引用勾选Microsoft Scripting RuntimeMac用户需另行导入VBA-Dictionary的Dictionary.cls。配置完成后随便执行一句JsonConverter.ConvertToJson试手不报错就过关。第二关·首个最小示例2分钟获得成就感 新建一个模块粘贴下面这段最短可运行代码Sub 我的第一个JSON程序() Dim 商品 As Object Set 商品 JsonConverter.ParseJson({名称:笔记本电脑,价格:5999}) MsgBox 商品 商品(名称) 价格 商品(价格) End Sub运行后弹出对话框——你的VBA正式听懂JSON了这就是全部魔法。第三关·真实场景让JSON真正为你干活场景A把API数据批量填入Excel表格。假设接口返回的JSON里有个订单数组每个元素是一笔订单。别被数组遍历四个字吓到思路只有三步先ParseJson把整段文本变成对象再用For Each循环把每个订单的字段读出来最后逐行写入单元格。核心代码不过四五行几百条记录一次性处理完比手工复制粘贴快了不止一个量级。场景B把Excel表格导出成JSON交给别的系统。反过来把单元格内容装进一个字典对象——表头当键、数据当值——最后一句JsonConverter.ConvertToJson(字典, Whitespace:2)就得到一份带缩进、可读性极佳的JSON文本写入文件直接交接给Web团队。动手前先在纸上画清楚键是什么、值是什么顺序就不会乱。第四关·进阶技巧3个效率点与坑位解法技巧1防大数字被截断做法原因。VBA的Double只存15位有效数字身份证号、订单号一长就会悄悄变样。VBA-JSON的默认策略是超过15位的纯数字一律按字符串保留保住原值——这正是你想要的不用乱动。如果确实需要数字再显式打开JsonConverter.JsonOptions.UseDoubleForLargeNumbers True。技巧2用Whitespace参数给输出美容做法原因。ConvertToJson(数据, Whitespace:4)生成带缩进的格式化JSON调试和对接时层级一目了然不带参数则是紧凑版适合传输省流量。原因很简单不同场合准备不同格式成本几乎为零。技巧3给解析套上安全网做法原因。解析失败时VBA-JSON会抛出错误码10001想让程序不中断就用On Error包一层失败时返回空字典并记录错误信息。生产环境最忌讳一崩到底提前兜底用户无感。结尾清单现在就能做的3件事 ✅立刻做clone仓库导入JsonConverter.bas跑通第二关的最小示例接着做把你手头一个真实的JSON字符串丢给ParseJson逐层打印取值坚持做把常用解析逻辑封装成函数参考specs/Specs.bas顺手写点自己的测试。常见报错快速排查表报错现象最可能原因解法编译报用户定义类型未定义字典引用未配置按第一关第3步勾选Scripting Runtime或导入Dictionary.cls找不到JsonConverter模块未导入确认已导入JsonConverter.bas超过15位的数字被截断误开了Double选项关闭该选项让大数字按字符串保留Mac上解析报错缺少VBA-Dictionary导入Dictionary.cls后重新编译官方资源核心源码 JsonConverter.bas 测试套件 specs/Specs.bas 完整用法见 README.md工具再好动手才叫会了。今天下班前去跑通你的第一个ParseJson吧——下次再遇到JSON你只会说一句就这【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考