Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Performance Probleme

Performance Probleme
27.10.2003 12:56:00
Marco
Hi,

in einer Excel Anwendung die ich gerade erstellen muss generiere ich ein später zu verwendendes Template dynamisch. Dabei muss ich u.a. in einem Tabellenblatt ziemlich oft (um genau zu sein 30*20) die folgende Formel einfügen:

ActiveCell.FormulaArray = "=SUM(IF(LEFT(SoW!R3C25:R990C25,RC2)=RC1,1,0)" _
& "*IF(RIGHT(SoW!R3C18:R990C18,4)=R79C,1,0)" _
& "*IF(LEFT(SoW!R3C18:R990C18,1)=""P"",1,0))"

Wenn ich das ganze nun in einem komplett neuem Arbeitsblatt erstelle, dass nur diese Formeln einträgt geht das ganze relativ zügig. Ist halt ne menge zeugs.
Wenn ich allerdings das ganze innerhalb einer schon grossen Datei laufen lassen killt mich die Laufzeit. Ich hab das ganze auch schon mit dem Debugger betrachtet und habe dabei festgestellt, das mir so ca. ab der 8. Iteration die Laufzeit davon läuft. Es wird mit jeder Iteration langsamer obwohl er doch immer die gleiche aufgabe erledigt (formel eintragen). Woran liegt das? checkt er nach jedem eintrag das ganze Formular auf Zirkelbezüge und wird er deshalb immer langsamer? Kann man das deaktivieren? Und warum hab ich das Problem nicht, wenn ich das ganze in einem "nackten" Arbeitsblatt laufen lasse?
Wär echt cool wenn jemand hier eine Idee hätte... ich bin am Ende mit meinem Latein ;-)

Gruss
Marco

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Vermutung
27.10.2003 12:59:57
Harald Kapp
Hallo Marco,
ich vermute es liegt daran, dass Excel mit jedem Eintrag die gesamte Matrix erweitert und neu berechnet. Es sollte schneller gehen, wenn Du erst den Bereich für die Matrixformel selektierst und dann in alle Zellen die Matrixformel mit einer Anweisung einträgst:

Beispiel aus der Excel-Hilfe:
Worksheets("Tabelle1").Range("E1:E3").FormulaArray = "=Sum(Z1S1:Z3S3)"

Gruß Harald
AW: Performance Probleme
27.10.2003 13:14:01
Ulf
Crossposting ist so gemein!

Ulf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige