Alle elf Minuten vergeht am Montag eine Minute
Guten Tag Herr Martin
Ich habe seit langen ein Problem, den ich nicht lösen kann.
Ich habe einen Code und der läuft bis zu einem Punkt durch. Danach kommt ein Debugg Fehler
Wenn ich dann auf Debuggen gehe , danach mit F5 weiter gehe, dann läuft der Code durch.
Hallo Herr S.,
drei Bemerkungen zu Ihrer Frage:
1. Das sind zu wenige Informationen.
Mir fehlt:
* wsKore_Import ist eine Variable, die auf eine Datei verweist?
* wie ist die Variable r deklariert?
* wie ist die Variable i2 deklariert?
* wenn Sie mit dem Mauszeiger über strBLATTNAME fahren – welchen Wert hat diese Variable?
* Gibt es das Blatt strBLATTNAME in der Datei wsKORE_IMPORT?
* Mit was ist strVON gefüllt?
2. Mich wundert:
Set r = …
Sie verweisen auf einen Bereich.
Anschließend:
For each r in r.cells
Hier beißt sich die Katze in den Schwanz:
Sie verwenden die Variable r (genauer: alle Zellen dieses Bereichs), die Sie gefüllt haben und weisen ihr ständig neue Zellen zu, verwenden aber immer noch r.cells. Autsch!
Verwenden Sie hier bitte eine andere Variable:
Dim r2 as Range
For each r2 in r.Cells
Der Punkt vor Cells ist sicherlich weiter oben zugewiesen, oder? With irgendetwas …?
3. Ich hatte auch schon Fälle, in denen ein Makros sehr merkwürdige Dinge machte (ich glaube, das hatte auch mal, dass es beim Debuggen funktionierte und beim Durchlauf (bei mir) IMMER abstürzte. Lösung: Ich habe den Code verändert! SO lange, bis es lief. Und dann mit den Schultern gezuckt.
In Ihrem Beispiel:
Arbeiten Sie mit einer „Zwischenvariable“. Beispielsweise
Dim xlBlatt As WorkSheet
Set xlBlatt = wsKORE_IMPORT.WorkSheets(strBlattname)
Set r = xlBlatt.range(strVon)
Vielleicht klappt das …
Klappt das?
Liebe Grüße
Rene Martin