Excel VBA 宏循环 "Save As" 增加文件大小?
Excel VBA macro looping "Save As" increases file size?
我正在处理 3 个单独的 Excel 文件。
一个(文件 D.xlsx)具有数据,我会将其存储到一个数组中。
一个(文件 M.xlsm)有宏,它对数据执行一些计算。
一个(文件 T.xlsx)是一个 16 张模板 -3 列 x 1300 行,其中最终数组逐个单元格插入(如果重要,则没有范围分配)。
完成模板填充后,我 "Save As" 然后用下一系列数据覆盖它,然后 "Save As",依此类推。问题是它每个都增加了 200 Kb 运行,我需要有 150 个这样的最终文件,这意味着最后一个文件将比模板大 30 Mb,而内容没有任何不同。
我已经试过了:
保存它而不在文件名中指定扩展名 - 没有变化。
将其保存为二进制 - 同样的问题只是规模较小(每个 运行 + 10 kb)。
禁用工作簿的自动恢复 - 没有变化。
disable/enable 更新、状态栏、事件等 - 没有变化。
仅插入值 <> 0 - 没有变化。
For q = 1 To UBound(arrTotals, 2) Step 3
For n = 1 To UBound(arrTotals, 1)
wbTEM.Worksheets(wsN).Cells(n, q).Value = arrTotals(n, q)
wbTEM.Worksheets(wsN).Cells(n, q + 1).Value = arrTotals(n, q + 1)
wbTEM.Worksheets(wsN).Cells(n, q + 2).Value = arrTotals(n, q + 2)
Next n
If (q + 2) Mod 48 = 0 Then
wbTEM.SaveAs FileName:=pathx & arrNames(wbN) & ".xlsb", FileFormat:=50
End If
Next q
结果数组是一个双精度数组,但我们不是在谈论天文数据,无论如何这些值或多或少是相同的,所以我希望所有文件的大小都相同,而不是一致增加尺寸。
问题是您添加数据的 Excel 文件没有按预期清理。所以你的文件的行数增加了。
我正在处理 3 个单独的 Excel 文件。 一个(文件 D.xlsx)具有数据,我会将其存储到一个数组中。 一个(文件 M.xlsm)有宏,它对数据执行一些计算。 一个(文件 T.xlsx)是一个 16 张模板 -3 列 x 1300 行,其中最终数组逐个单元格插入(如果重要,则没有范围分配)。
完成模板填充后,我 "Save As" 然后用下一系列数据覆盖它,然后 "Save As",依此类推。问题是它每个都增加了 200 Kb 运行,我需要有 150 个这样的最终文件,这意味着最后一个文件将比模板大 30 Mb,而内容没有任何不同。
我已经试过了: 保存它而不在文件名中指定扩展名 - 没有变化。 将其保存为二进制 - 同样的问题只是规模较小(每个 运行 + 10 kb)。 禁用工作簿的自动恢复 - 没有变化。 disable/enable 更新、状态栏、事件等 - 没有变化。 仅插入值 <> 0 - 没有变化。
For q = 1 To UBound(arrTotals, 2) Step 3
For n = 1 To UBound(arrTotals, 1)
wbTEM.Worksheets(wsN).Cells(n, q).Value = arrTotals(n, q)
wbTEM.Worksheets(wsN).Cells(n, q + 1).Value = arrTotals(n, q + 1)
wbTEM.Worksheets(wsN).Cells(n, q + 2).Value = arrTotals(n, q + 2)
Next n
If (q + 2) Mod 48 = 0 Then
wbTEM.SaveAs FileName:=pathx & arrNames(wbN) & ".xlsb", FileFormat:=50
End If
Next q
结果数组是一个双精度数组,但我们不是在谈论天文数据,无论如何这些值或多或少是相同的,所以我希望所有文件的大小都相同,而不是一致增加尺寸。
问题是您添加数据的 Excel 文件没有按预期清理。所以你的文件的行数增加了。