Excel VBA 宏循环“另存为”会增加文件大小?

里卡多·克雷瓦廷

我正在处理 3 个单独的 Excel 文件。一个(文件 D.xlsx)有数据,我将把它存储到一个数组中。一个(文件 M.xlsm)有宏,它对数据执行一些计算。一个(文件 T.xlsx)是一个包含 16 张 -3 列 x 1300 行的模板,其中一个单元格插入一个最终数组(如果重要的话,没有范围分配)。

完成填充模板后,我“另存为”,然后用下一系列数据覆盖它,然后“另存为”,依此类推。问题是每次运行都会增加 200 Kb,我需要有 150 个最终文件,这意味着最后一个文件将比模板大 30 Mb,在内容方面没有任何不同。

我已经尝试过:在不指定文件名扩展名的情况下保存它 - 没有变化。将其保存为二进制 - 只是在较小的规模(每次运行 +10 kb)的相同问题。禁用工作簿的自动恢复 - 没有变化。禁用/启用更新、状态栏、事件等 - 没有变化。只插入值 <> 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 文件未按预期清理。所以你的文件的行数会增加。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

VBA Excel将副本另存为txt文件

VBA从Access将Excel文件另存为.xls

Excel VBA另存为制表符分隔文件

使用VBA在Access中将Excel文件另存为文本

如何在excel VBA中仅在“另存为”而不是在正常的“保存”上运行宏

VBA Excel将新文件另存为活动文件的日期

Excel VBA 在默认文件夹中将文件另存为 Word 文档

Excel VBA打开Word模板,填充,然后另存为.docx文件

Excel VBA另存为不带分隔符的文本文件

Excel VBA - 使用特定工作表中的内容另存为文件

Excel VBA,另存为.txt时保持格式

Excel VBA UserForm打印屏幕另存为pdf

使用excel VBA在IE中单击“另存为”

VBA-Excel-另存为并删除原始工作簿

Excel VBA删除公式并另存为v2

VBA Excel 宏另存为带有日期的单元格的一部分

在Mac上“另存为”宏(vba)

VBA 宏不是“另存为”

VBA Excel 到 Word - 在第二次循环运行时另存为 pdf 失败

Excel for Mac VBA-另存为HTML在文件名中添加了意外的换行符

打开Word模板并将.doc另存为当前工作簿文件夹-Excel中的VBA

VBA另存为文件路径

使用 VBA 将启用宏的工作簿另存为“文件名”+ 当前日期

如何使用Excel宏将多个网页另存为pdf文件或屏幕截图?

Excel宏拍摄特定单元格的屏幕截图并另存为图像文件

另存为不接受包含“。”的字符串。在Excel VBA中

如何使用Excel VBA打开.csv并将其另存为.xlsx

VBA Excel基于图纸颜色另存为PDF-根据标签颜色创建图纸阵列

如何另存为excel和vba项目以备将来使用?