Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern von Feldern in VBA

Speichern von Feldern in VBA
Feldern
Hallo,
folgende Frage:
Wie werden die Felder in VBA intern angespeichert? Zeile für Zeile, oder Spalte für Spalte? Nach dem Element Feld(1,1) liegt im internen Speicher das Element feld (2,1) oder Feld (1,2).
Ich hab vorher in C und Fortran programmiert und da war das jeweils unterschiedlich. Wenn man mit sehr großen Feldern arbeitet sollte man beim bearbeiten der Feldelente beachten, dass man sie in der richtigen Reihenfolge anspricht (z.B. duch zwei do-Schleifen ineinander), da so sehr viel Rechenzeit gespart werden kann, als wenn immer im internen Speicher gesprungen werden muß.
Über Hilfe wäre ich sehr dankbar,
Cirrus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Speichern von Feldern in VBA
Feldern
Hallo Cirrus,
ich weiß es leider nicht. Aber guck mal in der Hilfe unter Redim, da steht etwas dazu, welche felder beim Umdimensionieren erhalten bleiben. Vielleicht kannst Du daraus die gewünschte Information ableiten.
Gruß Harald
AW: Speichern von Feldern in VBA
30.04.2004 12:35:28
Feldern
Hi Cirrus,
die Optimierung des Feldzugriffes wie in C (Pointerarithmetik)
ist in VBA nicht möglich (und auch überflüssig). Außerdem stellt
sich dann auch noch die Frage nach der Größe des gespeicherten
Datentyps ... usw.
Für das Laufzeitverhalten von VBA-Programmen hat es nur sehr
geringen Einfluss wie Du auf die Felder zugreifst. Wichtiger
ist z.B. eine Aktualisierung des Screen
zu unterdrücken, bzw. die Selektionen von Zellen beim Zugriff
auf die Werte völlig zu vermeiden.
Schöne Grüße
Niels
Anzeige
AW: Speichern von Feldern in VBA
Feldern
Hallo,
wo ist das Problem? Schreib Dir doch einfach einen Beispiel-Code, wähle das Limit gross genug, damit Du über die Speichergröße hinauskommst, dann merkst Du sehr schnell wie der Hase läuft.
Aber der Effekt zeigt ja auch erst bei riesigen Feldern:

Sub Test()
Const cLimit = 10000
Dim iT1#, iT2#, i%, j%
Dim arrVar() As Integer
ReDim arrVar(cLimit, cLimit)
iT1 = Timer
For i = 1 To cLimit
For j = 1 To cLimit
arrVar(i, j) = i + j
Next j
Next i
iT1 = Timer - iT1
iT2 = Timer
For j = 1 To cLimit
For i = 1 To cLimit
arrVar(i, j) = i + j
Next i
Next j
iT2 = Timer - iT2
MsgBox iT1 & vbCr & iT2
End Sub

Bei mir dauert die erste Variante deutlich länger :)
Gruß
Andreas
Anzeige
AW: Speichern von Feldern in VBA
Feldern
Danke für Eure Antworten!
Mir wurde halt beim Programmieren in aderen Sprachen immer eingeprügelt, dass man UNBEDINGT darauf anchten soll!!! Außerdem arbeite ich im Moment mit sehr großen Feldern (100000*100), da sollte man sich schon Gedanken machen, wenn man die öfter aufruft...
Ich wußte leider nicht, wie man die Zeit bei der Ausführung mißt.
Also vielen Dank,
Cirrus
AW: Speichern von Feldern in VBA
Feldern
Hola Andreas,
leider ist das nicht ganz richtig. Wenn Du nämlich zuerst den zweiten Teil ausführen lässt (also die Schleifen vertauschen), so ist iT2 kleiner als iT1.
Gruß
Oliver

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige