Frage stellen
0

VBA-Makros inakzeptabel langsam

gefragt 2016-09-11 20:12:32 +0100

Dliese Gravatar-Bild

Ich habe eine umfangreiche Datei mit umfangreichen Formeln (Dateigröße ca. 1,5 MB, 15 Tabellen) und generiere die Formeln aus einer Tabelle mittels VBA-Routinen, z.B. Range("A1").Formula=formel. Während identische Datei, identische Routinen im Excel 2007 die ca. 150.000 Formeln in 4 s generiert, dauert es im Libre OfficeCalc 45 Minuten, also die 600-700 fache Zeit. Automatisches Berechnen und ScreenUpdate mittels Application... ausgeschaltet. ScreenUpdate ausschalten wirkt jedoch nicht vollständig, der Bildschirm ändert sich sehr oft, z.B. beim Wechsel von Spalten oder Zeilen. Was nervt ist, dass er bei dieser Aktion auch andere aktive Tasks auf dem Bildschirm stört. Während ich das hier schreibe, hat mir Calc mindestens 10 mal die Steuerung entzogen. Den allgemeine Zustand, dass im Calc alles 10-20 mal länger dauert, hatte ich zunächst akzeptiert (Freeware). Aber 700 ist nun doch etwas zu viel. Version: 5.2.1.2.

Bearbeiten Tags ändern Melden schließen vereinen löschen

1 Antwort

0

geantwortet 2016-09-12 10:27:28 +0100

Toxitom Gravatar-Bild

Tia... was erwartest Du denn?

Hast Du mal versucht, ein LibreOffice Basic Makro unter MS Excel zum laufen zu bekommen und die Latenzzeit dort gemessen? Kaum - das schafft Excel nämlich gar nicht :)

LibreOffice hat eine eigene Objekt-API - und die ist nicht VBA-compatibel!! Ein Befehl "Range("A1").Fromula = formel" gibt es dort nicht - kann also auch gar nicht ausgeführ werden.

Dass es funktioniert liegt daran, dass ein paar Entwickler extra für VBA Code ne Übersetzungseben eingefügt haben um einfache Makros mit VBA Code in LO laufen lassen zu können. Freu Dich, dass es überhaupt funktioniert.

Willst Du performe Aktionen schreibe native Makros - mit LO Basic, Python oder welcher Sprache auch immer. Du kannst das Screenupdate ausschalten (sicher eine sinnvolle Ergänzung bei deinen Anforderungen), Schleifen optimieren und vieles mehr. Dann ist das auch perform und sinnvoll. VBA Code wird das nicht erreichen können.

VG Tom

Bearbeiten Melden löschen Link mehr

Kommentare

Danke für die Info, hilft mir leider nicht weiter, da ich gerade eine zu Excel kompatible Lösung gesucht habe, um für Finanzrechnungen eine "zweite Meinung" zu schaffen, Klappt auch wunderbar, LO hat ja das VBAProject extra dafür gemacht. Auch die meisten Formatierungsanweisungen laufen kompatibel. LO 5.2. bot sich deswegen an, weil es die Platzhalterfunktion aufgenommen hat. die ich unbedingt benötigte. Alle anderen Versionen einschl. OO gehen überhaupt nicht.

Dliese Gravatar-BildDliese ( 2016-09-12 22:32:24 +0100 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2016-09-11 20:12:32 +0100

Angesehen: 345 Mal

Aktualisiert: Sep 12 '16