Langsames Schreiben von VBA-Makros in Zellen

Ich habe ein VBA-Makro, das Daten in ein gelöschtes Arbeitsblatt schreibt, aber es ist sehr langsam!

Ich instanziiere Excel von einem 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

Mein Problem ist, dass der foreach-Zyklus ziemlich groß ist. Am Ende bekomme ich ungefähr 29000 Zeilen. Auf einem gut aussehenden Computer dauert dies mehr als 25 Minuten.

ibt es irgendwelche Tricks, um das Schreiben in die Zellen zu beschleunigen? Ich habe folgendes gemacht:

xlApp.ScreenUpdating = False
xlApp.Calculation = xlCalculationManual

Beziehe ich die Zellen falsch? Wäre es möglich, anstelle der einzelnen Zellen in einer ganzen Reihe zu schreiben?

äre das schnelle

Ich habe meinen Code getestet, der foreach-Zyklus verläuft ziemlich schnell (ich habe die Werte in einige Zufallsvariablen geschrieben), daher weiß ich, dass das Schreiben in die Zellen die ganze Zeit in Anspruch nimmt.

Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.

Vielen Dank für Ihre Zeit

Antworten auf die Frage(8)

Ihre Antwort auf die Frage