У меня есть код Excel VBA, который занимает более 5 секунд для сброса массива размера 166 рядов на листе книги. Я попытался скрыть рабочий лист, но все, что я получаю, это значок ожидания для каждой отдельной ячейки.Заполнение листа из массива Excel VBA занимает очень много времени
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'. – GSerg
Вы можете увидеть видеоролик об этом в действии: https://goo.gl/re3uQg 29 строк занимают 6 секунд. Последние идут быстро, первые, медленные. –
Woah GSerg !! он работает невероятно хорошо. Я не знал, что массив можно назначить за один раз. Огромное спасибо. –