gpt4 book ai didi

vba - 运行时错误 7 Out of Memory 使用 vba 集合

转载 作者:行者123 更新时间:2023-12-04 22:00:27 25 4
gpt4 key购买 nike

我是 excel 中的 vba 新手,事实上这对我来说是第一次。在此过程中,我设法解决了大多数问题并在网上找到了答案。然而,最新的问题我找不到答案,解决我的问题。

这个函数,下载一个 json 字符串,通常是 5+mb 大。这个循环找到每个组件的开始和结束 {} 并将其添加到集合中。一切都很好,直到我到达 1600/35k 条目并发生运行时错误。

有第二个错误,带有字符串外的消息,但是将 vbNullString 分配给字符串会阻止这种情况发生

Dim cnt As Long
Dim json As String, idKey As String
Dim strStart As Long, strFinish As Long

cnt = 0
strStart = 1
strFinish = 0
On Error GoTo HandleIt
Do While strFinish <= Len(dataStr) - 5
json = vbNullString
strStart = InStr(strStart, dataStr, "{""Id"":", vbBinaryCompare)
strFinish = InStr(strStart, dataStr, "}", vbBinaryCompare) - 1
json = Mid$(dataStr, strStart, strFinish)

' Get the itemID for the key
'strStart = InStr(6, json, ",", vbBinaryCompare)
'idKey = Mid$(json, 7, strStart - 7)

TSMDataBulk.add json
strStart = strFinish
cnt = cnt + 1
Loop

tltd:一切运行良好,直到 TSMDataBulk.add 导致内存不足错误。任何人都可以帮忙吗?

最佳答案

看起来您正在使用 Mid$好像参数是:Mid$(string, start, end) 实际上,参数是:Mid$(string, start, length)

因此,如果 strStart 为 5000 且 strFinish 为 5050,您将返回从 5000 到 10549 的所有字符,而不是返回从 5000 到 5050 的字符。这可以很好地解释当您深入字符串时出现内存不足错误。

改变:

json = Mid$(dataStr, strStart, strFinish)

至:
json = Mid$(dataStr, strStart, (strFinish - strStart) + 1)

关于vba - 运行时错误 7 Out of Memory 使用 vba 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com