Hallo zusammen,
bei mir kommt der Speicherfehler beim Einlesen nach 5950 Zeilen. Office 2013 (32), Windows 8.1 (64) und einem Laptop mit i5 und 8 GB Speicher. Also nach nicht einmal 10% der programmierten Zeilen auf einem recht gut ausgestatteten Gerät.
Allerdings eben kein 64er Office und wir in unserem Forum gleich wieder ein Beispiel, wo man die 64 bit braucht
.
Auf 10 reduziert funktioniert es nur bedingt: Die Inhalte wurden nicht über den gesamten Bereich gewürfelt, sondern immer nur in ihrer eigenen Spalte. Die Inhalte aus Spalte A standen wieder in Spalte A, die Inhalte aus Spalte B nur in Spalte B.
Ich zitiere mal aus meiner ersten Antwort:
Zitat:ich bin mir nicht sicher, ob Du mit Deiner Frage darauf abzielst, die Einträge aller Zeilen und Spalten der Excel-Tabelle zu mischen oder nur innerhalb der jeweiligen Spalte oder ...
Zudem finden sich die benachbarten Einträge der einzelnen Spalten auch jeweils in der gleichen Zeile wieder, z.B. die Einträge aus A5 und B5 dann in A2 und B2. Da die Spalten in meinem Bereich nicht vollständig bis zur letzten definierten Zeile gefüllt sind, sind Leerzeichen dazwischen.
Falls das alles so gewollt ist und Deine 16384 Spalten nicht alle gefüllt sind, könnte ich mir auch folgende Vorgehensweise vorstellen:
- füllen eines 1D-Array(65500) mit Zufallszahlen
- Ausgabe des Array in Spalte 16384
- Sortieren des gesamten Blattes nach Spalte 16384
- Leeren der Spalte 16384
Das dürfte dann deutlich schneller gehen. Auch wenn Deine Spalte 16384 gefüllt sein sollte würde mich mal ein Geschwindigkeitsvergleich der beiden Varianten interessieren - kann ich ja leider nicht selber machen wegen des fehlenden 64er Excel.