我有一个只有 1MB 的 excel 文件,但它会无限期地增加内存使用量(超过 6GB),直到它崩溃。
该工作表由 100 个独立的行组成,每行大约 300 列,它从加载项中提取数据并进行 Excel 计算。Excel 具有连接到本地 Access DB 以提取 10,000 个 ID 的 VBA,然后一次以 100 个为一组通过它们,从加载项中提取数据(使用 UDF),然后进入下一个 100。
它执行以下步骤:1)从 Access DB 中提取 10,000 个唯一 8 字符 ID 的列表,将它们插入 Sheet2(未用于其他任何内容)-这部分不使用太多内存 2)在 VBA 中-从顶部,它一次循环遍历 100 个 ID 的块,将它们复制到 Sheet1 中的 A1:A100 位置,其中 300 列引用 UDF 并计算每行 A 列中的 ID 3) 计算要拉入的工作表来自 UDF 的每列的新数据
即使之前的 100 个 ID 块消失了,这似乎只会在每次运行时增加内存使用量(我这样做是因为如果我一次执行 10,000 个,它似乎会崩溃)。工作簿是关于手动计算的(因此是第 3 步);并且所有对象都被设置为 = 数据库信息复制一次没有完成。
如何阻止内存使用量累积?这似乎与 UDF 在运行后没有清除内存有关。有没有办法在每个 100 个 ID 块之后清除 Excel 中的任何缓存或使用 VBA 重置它?谢谢