【发布时间】:2011-03-22 16:07:58
【问题描述】:
我为 Excel 2003 编写的 VBA 宏遇到了很大的问题。它从其他文件导入一些数据。结果是 Excel 文件的文件大小(行数/列数)随着每个导入的文件而增加。在 Excel 2003 中,前 50 个导入文件的运行速度非常快,然后速度变慢。但是对于 Excel 2010,即使是少量文件也需要相当长的时间。问题在于一条语句执行了很多次:
Sheets("Sheetname").Rows(LastRow).Insert Shift:=xlDown
当文件变大时,此行在 Excel 2010 中需要将近一秒钟。当我手动添加行时,我遇到了同样的问题。
我通常会做很多事情来提高性能:
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
ActiveSheet.AutoFilterMode = False
提前感谢您的帮助。我很确定其他人已经遇到过这个问题。
【问题讨论】:
-
你能找到不使用该行插入的方法吗?您如何添加新信息?
-
LastRow真的是最后一行吗?如果是这样,为什么插入而不是复制? -
之所以使用插入,是因为将上一行的格式复制到了新插入的行中。但我想我会只是填写数据而不关心格式。
标签: performance vba excel insert row