VBA: sheet.copy



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: VBA: sheet.copy
von: Alexander Keune
Geschrieben am: 17.06.2002 - 13:44:17

Hallo!

Ich habe eine Schleife in der Schleife geschrieben, die etwa folgendes tut:

Alle Excel-Dateien in einem Verzeichnis werden nacheinander geöffnet (Schleife 1) und alle in der Mappe enthaltenen Blätter werden in eine vorher erstellte Gesamtmappe kopiert (Schleife 2). Die Quellmappen werden immer geschlossen (ohne Speichern), bevor die nächste geöffnet wird.

Beim Abarbeiten dieser Schleife kommt nach einiger Zeit immer die
Fehlermeldung:

------------------------
Laufzeitfehler '1004':

Die Copy-Methode des Worksheet-Objekts konnte nicht ausgeführt werden.
------------------------

Der Debugger zeigt dann auf die Anweisung, die die Blätter kopiert.

Es sind im konkreten Fall 14 Mappen mit insgesamt 96 Blättern, die Zahlen können von Monat zu Monat schwanken, werden sich aber immer etwa in diesen Dimensionen bewegen.

An konkreten, evtl. fehlerhaften Mappen kann es nicht liegen, ich habe die Teile umbenannt, somit die Reihenfolge geändert, manche bei Testläufen weggelassen usw. Bei den verschiedenen getesteten Varianten kommt Excel bis etwa reichlich 50 Mappen, in Einzelfällen bis über 70, jedoch nie bis zum Ende.

Ich denke mir, es hat was mit dem Arbeitsspeicher zu tun (?). Mein Rechner hat aber 256 MB RAM und noch mehr virtuellen Speicher, was ja für Excel reichen sollte, oder?

Kennt jemand dieses Phänomen und vielleicht einen Ausweg / workaround?

Danke für alle Infos! :-)

Alex

nach oben   nach unten

Re: VBA: sheet.copy
von: Nike
Geschrieben am: 17.06.2002 - 17:04:13

Hi,
zwischendurch mal die Zieldatei speichern...
Ansonsten sieht mir das ganz stark nach ner Anwendung für
Access aus ;-)
Ich hab auch mal so angefangen und dann irgendwann ging
es nicht mehr anders ;-)

Weitere Steigerungsmöglichkeiten sind dann noch das reine
Kopieren der Werte in neu angelegte Blätter
bzw untereinander in eine Tabelle ;-)

Viel Glück...

Bye

Nike


nach oben   nach unten

Re: VBA: sheet.copy
von: Alexander Keune
Geschrieben am: 17.06.2002 - 17:15:09

Hallo!

Danke erstmal für die Antwort!

Mit Access hat es nichts zu tun. Es sind Projektabrechnungen, (pro Mitarbeiter 1 Mappe, pro Projekt 1 Blatt), die in einer großen Monatsmappe zusammengefasst werden sollen.

Das mit dem Speichern habe ich schon probiert, war auch meine erste Idee, und zwar in beiden Schleifen, also sowohl nach jeder Mappe also auch nach jedem Blatt. Das Ergebnis war, dass es nur länger gedauert hat, "abgestürzt" ist die Prozedur trotzdem, wenn auch etwas später (es wurden mehr Blätter kopiert, aber eben nicht alle).

Nur Werte kopieren geht nicht, da viele Formeln und VBA-Funktionen in den Blättern stecken, die in der Gesamtmappe auch noch funktionieren sollen.

Gibt es noch weitere Möglichkeiten?

Alex


nach oben   nach unten

Re: VBA: sheet.copy
von: Alexander Keune
Geschrieben am: 18.06.2002 - 09:22:18

Ich hab was in der englischen Knowledge Base gefunden. Man soll periodisch speichern, schließen und dann eben wieder öffnen usw. Tolle Sache! Mal sehen, ob's funktioniert.

Alex


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Automatisch "undo", aber nur einmal!"