Hi zusammen,
für einige Anwendungen in der Firma habe ich teilweise recht umfangreiche Programme erstellt, u.a. in Verbindung mit recht großen (~10k Zeilen) Excel-Tabellen. In AutoIt kein Thema^^
Da Excel aber auch mit VBA zu steuern ist, habe ich, um nur ein System zu nutzen, die AutoItscripte durch VBA-Scripte ersetzt.
Im Großen und Ganzen funktioniert alles, allerdings mit einem gravierenden Nachteil. Die VBA-Scripte laufen teilweise extrem langsam, teilweise um Faktor 10 !
Da timern nicht zu den großen Stärken von VBA gehört ( genau wie viele andere Sachen auch ) habe ich zwei einfache FOR/TO Schleifen erstellt, sowohl in VBA als auch in AutoIt und mit der Hand ausgestoppt.
Innerhalb der Schleife wird einfach der Zelleninhalt einer Zeile ausgelesen:
Der Counter läuft einfach zeilenweise durch das sheet.
Wieso ist AutoIt vielfach schneller als VBA?
Bzw. gibt es ggf in VBA einen "Turbo"-Schalter, um ggf Debugging o.ä. auszuschalten?
Weil einige VBA-Anwendungen so unendlich langsam sind, habe ich heute angefangen, wieder auf AutoIt umzustellen, aber ein Zustand ist das nicht!
Ein Excel-sheet mit 10K Zeilen mit je 50 Spalten speichere ich als CSV, lese diese per AutoIt in ca. 1/2 Sekunde in ein 2D-Array und kann dann wiederum diese Daten in andere Tabellenblätter einfügen...
//EDIT gelöst!
Excel hat ein massives Problem mit mehreren Tabellen in einer Instanz. Öffnet man die sheets in einer neuen Instanz, dann gibt es keinerlei Geschwindigkeitsproblem!
Die neue Instanz wird beim doppelklick auf ein sheet geöffnet, indem der Schalter /n (in neuer Instanz öffnen ) anstatt /e (in der aktuellen Instanz öffnen) in der Verknüpfung mit der EXCEL.EXE verwendet wird.
EXCEL.EXE /n
AutoIt hat deshalb kein Problem, weil es standardmäßig das sheet in einer neuen Instanz öffnet...