【发布时间】:2015-08-28 16:50:33
【问题描述】:
我有这个 Excel VBA 代码在工作簿表中转储一个 166 行大小的数组需要 5 秒以上。 我试图隐藏工作表,但得到的只是每个单元格的“等待”图标。
Dim wkb As Workbook
Set wkb = Workbooks.Add
For row = 0 To UBound(fullReport, 1)
For col = 0 To UBound(fullReport, 2)
wkb.Sheets(1).Cells(row + 1, col + 1) = fullReport(row, col)
Next col
Next row
奇怪的是,第一次总是很慢,然后有时很快。
【问题讨论】:
-
您是否有取决于您设置的值的公式?还可以尝试一次性设置数组,
wkb.Sheets(1).Cells(1, 1).Resize(UBound(fullReport, 1), Ubound(fullReport, 2)).Value = fullReport。 -
您可以观看它的运行视频:goo.gl/re3uQg 29 行需要 6 秒。最后一个走得快,第一个走得慢。
-
哇!它工作得非常好。我不知道可以像这样一次性分配一个数组。非常感谢。