Медленная запись макроса VBA в ячейках

У меня есть макрос VBA, который записывает данные в очищенную рабочую таблицу, но это очень медленно!

Я создаю экземпляр Excel из Project Professional.

Set xlApp = New Excel.Application
xlApp.ScreenUpdating = False
Dim NewBook As Excel.WorkBook
Dim ws As Excel.Worksheet
Set NewBook = xlApp.Workbooks.Add()
With NewBook
     .Title = "SomeData"
     Set ws = NewBook.Worksheets.Add()
     ws.Name = "SomeData"
End With

xlApp.Calculation = xlCalculationManual 'I am setting this to manual here

RowNumber=2
Some random foreach cycle
    ws.Cells(RowNumber, 1).Value = some value
    ws.Cells(RowNumber, 2).Value = some value
    ws.Cells(RowNumber, 3).Value = some value
             ...............
    ws.Cells(RowNumber, 12).Value = some value
    RowNumber=RowNumber+1
Next

Моя проблема в том, что цикл foreach довольно большой. В конце я получу около 29000 строк. Это займет более 25 минут, чтобы сделать это на довольно хорошем компьютере.

Есть ли какие-нибудь приемы, чтобы ускорить запись в ячейки? Я сделал следующее:

xlApp.ScreenUpdating = False
xlApp.Calculation = xlCalculationManual

Я неправильно ссылаюсь на клетки? Можно ли написать целую строку вместо отдельных ячеек?

Это будет быстрее?

Я протестировал свой код, цикл foreach проходит довольно быстро (я записал значения в несколько случайных величин), поэтому я знаю, что запись в ячейки - это то, что занимает все это время.

Если вам нужна дополнительная информация, фрагменты кода, пожалуйста, дайте мне знать.

Спасибо за ваше время.

Ответы на вопрос(4)

Ваш ответ на вопрос