Json 在VBA中用引号生成大字符串
我需要在VBA中构建一个带有引号的大字符串(json) 我尝试过这种方法:Json 在VBA中用引号生成大字符串,json,excel,vba,Json,Excel,Vba,我需要在VBA中构建一个带有引号的大字符串(json) 我尝试过这种方法: Dim payload As String payload = "" payload = payload & CHR(34) & {"timeframeId":13,"startDate":"2021-05-31 00:00:00.000","endDate":"2021-05-31 00:00:
Dim payload As String
payload = ""
payload = payload & CHR(34) & {"timeframeId":13,"startDate":"2021-05-31 00:00:00.000","endDate":"2021-05-31 00:00:00.000","peopleList":[{"id":123}], & CHR(34)
...more lines building string
但是Excel IDE for VBA抱怨语法错误——可能与带引号的字符串有关
我是否需要在“每个”的“开始”和“结束”之前添加CHR(34)?Al Grant
Chr(39)或“双引号char”是VBA的文本限定符,因此需要对字符串进行调整
我假定您在工作表中的任何位置都有此值。
因此,通常的方法是设置范围并使用replace替换另一个字符,然后返回到chr(39)
如果要在硬代码中输入什么,则每次出现双引号时都需要将chr(39)连接起来,或者使用“”
但最简单的方法是将find和replace(CTRL+H)替换为另一个字符,并继续像以前那样进行开发
Dim payload As String
payload = payload & Chr(34) & Replace("{'timeframeId':13,'startDate':'2021-05-31 00:00:00.000','endDate':'2021-05-31 00:00:00.000','peopleList':[{'id':123}],", Chr(39), Chr(34)) & Chr(34)
Debug.Print payload
结果:
“{”timeframeId“:13,“startDate:“2021-05-31 00:00:00.000”,“endDate:“2021-05-31 00:00:00.000”,“peopleList:[{”id“:123}],”负载正在发送到另一台服务器-我不确定它是否接受“而不是”“-我会测试并让您知道。无论如何,如果不是硬编码更容易,只需指向所需的范围。您只需在引号中用额外的双引号转义双引号。例如
payload&“{”“timeFrameID”“:13”“startDate”“;”“2021-05-31 00:00:00.000”“…}”
必须有更好的方法在VBA中构建大型json字符串。目前看起来很混乱!确实有。但这就是您展示的内容,也是您的问题所在。在Excel中,我将介绍如何将对象(字典/集合/数组)转换为json字符串