Hallo allerseits, kleine Frage zu EXCEL/VBA:
Ausgangssituation: In vorbereitete und geöffnete Excel-Tabelle wird über externes Programm (per OLE) ein Tabellenbereich gefüllt. Daten-Entgegennahme von Excel ist entschieden zu langsam.
Bereits versucht:
excel.ScreenUpdating := False;
excel.EnableEvents := False;
excel.Calculation := xlCalculationManual;
ohne Erfolg.
Aber: Beschleunigung auf das ca. 10fache erfolgt bei gleichzeitigem Festhalten des Scrollbalkens (per linker Maustaste) innerhalb der Excel-Tabelle während der Datenübertragung.
Frage: welcher Mechanismus wird hier abgeschaltet und wie kann man das per VBA lösen?
Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge
Wird während der Datenübernahme in der Tabelle was dargestellt?
Ich meine damit, daß zB. sehr viele bedingte Formatierungen arbeiten.
Das macht sowas ziemlich langsam.
Das kann man beschleunigen, indem man die Seite ausschaltet und nach der Übertragung wieder einschaltet.
Danke, aber genau das sollte durch die genutzten Funktionen (ScreenUpdating + Calculation) eigentlich abgeschaltet sein. (Oder funktioniert das nicht?)
Bedingte Formatierungen werden nicht genutzt.
Müßte, aber ich denke, die Sysntax ist falsch.
Bei Excel 2000 wäre das
excel.ScreenUpdating = False;
Also ohne Doppelpunkt.
Ebenso die anderen.
Die Syntax resultiert aus Delphi, dort muss der Doppelpunkt sein.
Trotzdem Danke.
Habe zwischenzeitlich das Problem anders gelöst:
die einzugebenden Daten (ca. 30.000 Einzelwerte) werden in der Zwischenablage bereitgestellt und dann mit einem Paste eingefügt.
Die Rechenzeit reduzierte sich dadurch von knapp 3 Minuten auf ca. 2 Sekunden.
Allerdings habe ich noch immer keine Erklärung dafür, warum das Festhalten des Scrollbalkens eine Beschleunigung bewirkte - aber das nur noch am Rande, das eigentliche Problem ist ja gelöst.
Danke nochmals.