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