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

在VBA中拼接含双引号的大型JSON字符串的语法问题

VBA构造含双引号的JSON字符串解决方案

错误原因

你现有代码的语法错误来自两个问题:

  • 你直接将JSON结构{...}放在拼接逻辑中,没有将其包裹为VBA可识别的字符串字面量
  • JSON本身包含的双引号会被VBA识别为字符串结束标记,打断原有语法

双引号处理方案

不需要强制在所有双引号前后加Chr(34),有两种常用处理方式:

方式1:VBA字面量双引号转义(更适合大段JSON)

VBA的字符串字面量规则中,连续写2个双引号,会被识别为字符串内容本身的1个双引号,不需要拼接Chr(34),写法更简洁:

Dim payload As String
payload = "{""timeframeId"":13,""startDate"":""2021-05-31 00:00:00.000"",""endDate"":""2021-05-31 00:00:00.000"",""peopleList"":[{""id"":123}]}"

如果JSON体积大,可以拆分多行拼接,避免VBA单行长度限制:

Dim payload As String
payload = ""
payload = payload & "{""timeframeId"":13,"
payload = payload & """startDate"":""2021-05-31 00:00:00.000"","
payload = payload & """endDate"":""2021-05-31 00:00:00.000"","
payload = payload & """peopleList"":[{""id"":123}]}"

方式2:使用Chr(34)拼接

如果偏好使用Chr(34)代表双引号,需要把所有JSON中的双引号都替换为Chr(34)的拼接逻辑,示例如下:

Dim payload As String
payload = "{" & Chr(34) & "timeframeId" & Chr(34) & ":13," & Chr(34) & "startDate" & Chr(34) & ":" & Chr(34) & "2021-05-31 00:00:00.000" & Chr(34) & "}"

额外建议

如果需要频繁构造JSON,建议引入成熟的VBA JSON解析库,直接通过字典/数组对象生成JSON,不需要手动处理字符串转义,出错概率更低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 08:24:04