Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Excel 2003 / 2007 Geschwindigkeit Array in Range

Excel 2003 / 2007 Geschwindigkeit Array in Range
09.11.2007 09:42:00
Peter
Hallo Fachmänner und Fachfrauen,
ich habe 2 Dateien mit jeweils dem gleichen Makro. Das Makro erstellt ein Feld und schreibt dises in das Tabellenblatt1. Es wird die Zeit gemessen, die für das reine Schreiben benötigt wird.
Unter Excel 2003 dauert das bei mit ca. 4 bis 5 Sekunden.
Unter Excel 2007 dauert das bei mit ca. 35 bis 40 Sekunden.
Kann mir jemand sagen, ob das ausschließlich an der erhöhten Zeilen- und Spaltenanzahl bei Excel 2007 liegt - oder mach ich einen ganz anderen Fehler?
Hier der Link zu den Dateien: https://www.herber.de/bbs/user/47538.zip
Bekomme ich das unter Excel 2007 irgendwie schneller hin?
Für jede Hilfe dankbar...
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel 2003 / 2007 Geschwindigkeit Array in Range
09.11.2007 18:22:00
Peter
Weiß denn keiner eine Antwort? - Gibts doch nicht...
Peter

AW: Excel 2003 / 2007 Geschwindigkeit Array in Range
09.11.2007 18:43:44
Jan
Hi,
habs mal gestestet, unter E 2007 braucht der Code im Schnitt 58% mehr Laufzeit.
Da du ja eigentlich schon alle Beschleuningungsmaßnahmen eingebaut hast, sehe
ich schwarz, das schneller hinzubekommen.
mfg Jan

AW: Excel 2003 / 2007 Geschwindigkeit Array in Range
09.11.2007 18:47:00
Peter
Danke für die Antwort,
schade - aber vielleicht weiß ja noch jemand eine Lösung...
Gruß
Peter

AW: Excel 2003 / 2007 Geschwindigkeit Array in Range
12.11.2007 00:16:00
Gerd
Hallo Peter,
mit dem Datentyp Variant für's Datenfeld in 6 Sekunden?. Und beim Wiederholen sollte man zuerst die Zellen leeren. Trotzdessen wird dann die Laufzeit stets länger. Ein Speicherfresser bleibt dieses Konstrukt immer. Mit xl2007 kann ich allerdings leider nicht testen.
Option Explicit
Option Base 1

Sub M_test()
Dim T As Single
T = Timer
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Dim k As Long
Dim j As Long
Dim rng As Range
Dim ws As Worksheet
Dim ec(22000, 256) As Long
For k = 1 To 22000
For j = 1 To 256
ec(k, j) = j + k
Next j
Next k
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(22000, 256))
rng.Value = ec
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Zeit = " & Timer - T & " sec."
End Sub


Gruß Gerd

Anzeige
AW: Excel 2003 / 2007 Geschwindigkeit Array in Ran
12.11.2007 01:05:00
fcs
Hallo Peter,
du solltest evtl. mal die Variablendeklaration für die Array-Variable überdenken.
Dim ec(22000, 256) As Variant
Die Deklaration als Variant ist extrem speicherplatz-hungrig. Bei einer Marix mit 5632000 Zellen ist damit natürlich auch das Schreiben/Lesen der Daten entsprechend speicher/zeitaufwendig.
Passe die Deklaration an das tatsächliche Datenformat an (Integer, Long, Double oder String). Bei meinem schon etwas betagten System mit Excel97/Windows98 dauerte der Eintrag des Arrays in die Tabelle bei Deklaration als Integer ca. 15 Sekunden, die Datenaufbereitung in der For-Schleife kaum länger. Bei Deklaration als Variant tauchte das System minutenlang ab mit ewigen Festplattenzugriffen.
Gruß
Franz

Anzeige
AW: Excel 2003 / 2007 Geschwindigkeit Array in Ran
12.11.2007 11:00:28
Peter
Hallo Franz,
danke für die Antwort.
Unter Excel2007 kann ich allerdings keine Unterschied bei verwendung verschiedener Datenformate feststellen. Egal ob Integer, Long, Variant oder String - alles dauert so um die 40 Sekunden...
Ich werde mich anscheinend damit abfinden müssen, dass das Excel2007 mit einem Geschwindigkeitsverlust (zu mindest für meinen Fall) verbunden ist...
Peter
P.S.: Danke auch an Gerd für seine Antwort

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige