Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
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
Inhaltsverzeichnis

Debugging: Lange Schleifen schneller durchlaufen

Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:30:46
sivcam
Hallo liebes Forum,
Ich habe ein recht großes Excel-Tool programmiert und versuche gerade einige kleine Fehler zu entfernen. Dabei habe ich Probleme mit dem Debugging-Modus. Ich habe Schleifen, die teilweise über 1000 mal durchlaufen werden und ich möchte mir einen bestimmten Fall anschauen. Z.B.
For i = 0 to 1500
'dann kommt ein Haufen Code
Next i
Hier würde ich gerne beispielsweise den Fall i = 678 genauer anschauen, weil da ein Fehler im Code innerhalb der Schleife ist. Jetzt muss ich den Debugger so lange durchklicken bis ich bei i = 678 angekommen bin. Das ist recht lästig.
Gibt es eine Möglichkeit das im Debugging-Modus irgendwo einzutippen, er soll den Code durchlaufen bis i=678 ist und dann stoppen?
Ich hoffe ihr versteht mein Problem und könnt mir helfen!

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:34:15
Werner
Hallo,
wenn dir bekannt ist, dass der Fehler bei i=678 auftritt, dann ändere doch einfach zum Testen deine For-Next-Schleife
For i = 677 to 678
Gruß Werner
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:39:30
sivcam
Hallo Werner,
Ok, das wäre tatsächlich eine sehr simple Lösung und für einige Fälle sogar perfekt. Warum man da nicht selber drauf kommt :D
Allerdings brauche ich es teilweise trotzdem, dass der Code bis zu der Stelle durchgelaufen ist. Also auch von 0 bis 677, nur eben bei 678 anhalten.
Grüße
sivcam
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:48:48
EtoPHG
Hallo (zusammen)
Um einen Code zu debuggen, ist es eine schlechte Idee den Code zu ändern ;-)
Der Debugger von VBE hat genügend Möglichkeiten:
In diesem Fall heisst die Variable i und es kann so vorgegangen werden:
Rechtsklick auf die Variable - Überwachung hinzufügen - Ausdruck: i=678 - (x) Unterbrechen, wenn der Wert True ist!
Der Code stoppt nun automatisch, sobald die Variable i denn Wert 678 erreicht und mit F8 kann nun Zeile für Zeile ausgeführt werden.
Gruess Hansueli
Anzeige
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 12:09:55
sivcam
Ja perfekt! Genau das ist es! Danke EtoPHG!!
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:41:42
Daniel
Hi
um den Code an einer bestimmten Stelle anzuhalten und in den Einzelstepmodus zu wechslen, gibt es den Befehl STOP:
for i = 1 to 1500
if i = 677 then Stop
Next
wenns funktioniert, Zeile wieder entfernen.
Gruß Daniel
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:43:46
Matthias
Hallo
Probiers mal so:

For i = 0 to 1500
'dann kommt ein Haufen Code
if i = 678 then Stop
Next i
Gruß Matthias
AW: Debugging: Lange Schleifen schneller durchlaufen
11.01.2017 11:48:57
Daniel
Ich würde einen Haltepunkt am Anfang der Schleife setzen und dann über den Lokal Bereich den Wert des Zählers manipulieren - dadurch müsstest du deine Änderungen am Quellcode vornehmen und testest deinen richtigen Code (durch Änderungen passieren immer wieder Fehler...).
Gruß,
Daniel
Anzeige
Für die VBA-Cracks : Antworten...
11.01.2017 11:50:53
EtoPHG
Hoi zäme,
Mir stehen die Haare zu Berge... Warum z.Teufel lasst ihr nicht den Debugger die Sache übernehmen?
Siehe meine Antwort weiter oben!
Gruess Hansueli
...wohl, weil sie den VBE nicht ausreichend ...
11.01.2017 14:51:23
Luc:-?
…genug kennen, Hansueli,
und deshalb das dazugehörige Fenster nicht andocken… ;-]
🙈 🙉 🙊 🐵 Xunds Neus & Gruß, Luc :-?
Besser informiert mit …
AW: ...wohl, weil sie den VBE nicht ausreichend ...
11.01.2017 15:05:46
Daniel
der Aufwand für ne kleine Stop-Zeile ist jetzt auch nicht größer, als die Überwachung zu aktivieren.
außderdem will man ja vielleicht nicht alle Schleifen, die den Schleifenzähler i verwenden, überwachen, sondern nur eine bestimmte, vielleicht will man ja den Stop nicht am Anfang der Schleife haben, sondern irgendwo mitten drin.
vielleicht stört auch das Überwachungsfenster, weil ich den Platz auf dem Bildschirm mit anderen Daten füllen möchte.
Der Überwachungsausdruck muss bei jedem Öffnen neu aktiviert werden, ist also lästig, wenn man den Fehler nicht sofort findet sondern die Arbeit unterbrechen muss.
Gruß Daniel
Anzeige
Ich muss das relativieren, denn natürlich ...
11.01.2017 22:05:30
Luc:-?
…haben alle genannten Methoden ihre Berechtigung, Daniel & Matti;
Hansuelis Vorschlag passt hier, wenn die LaufVariable nicht auch anderweitig verwendet wird oder man halten will, wenn eine Variable das 1.Mal einen bestimmten Wert erreicht (bzw gefüllt wird). Hier reicht allerdings auch das Andere. Solche temporär aktiven bzw auskommentierten und später gänzlich gelöschten Befehls­zeilen verwende ich schließlich auch.
Dass Hue sich an Cracks gewendet hat, war also fehl am Platze. Meine diesbezügliche Vermutung ziehe ich folglich zurück, denn ihr habt ja strax das Gegenteil bewiesen. Verbleibt also nur der Fragesteller, dem das mitzuteilen ja wohl nicht schaden kann… ;-)
Gruß & euch ebenfalls G'sund's Neu's, Luc :-?
Anzeige
das war aber daneben von Hansueli ...
11.01.2017 18:11:57
Hansueli
Zitat
Mir stehen die Haare zu Berge... Warum z.Teufel lasst ihr nicht den Debugger die Sache übernehmen?
Siehe meine Antwort weiter oben!

Zitat
..wohl, weil sie den VBE nicht ausreichend ...
…genug kennen, Hansueli,
und deshalb das dazugehörige Fenster nicht andocken… ;-]


Das ist einfach nur falsch. Ich kenne die Fenster und docke auch bei Bedarf an.
Meint Hansueli wirklich das er mit seiner Vorgehensweise etwas Anderes erreicht als mit der Stop-Zeile im Code?
Auch mit der Stop-Zeile wird der Debugger angestoßen und man kann mit F8 im Einzelstepmodus analysieren.
Den Code dann bis zum Ende durchlaufenlassen kann man auch mit nur einem Mausklick.
Was also soll so cool sein mit dem Vorschlag von Hansueli, der nicht anderes macht wie das Stop im Code?
Im Gegenteil, er braucht viel mehr Klicks für die Überwachung und Abschaltung als das Stop im Code.
Gruß Matthias (Matti)
Anzeige
AW: das war aber daneben von Hansueli ...
11.01.2017 18:53:52
Hansueli
Überwachungsfenster ist gut, wenn man nur weiß, WANN (dh bei welcher Bedinung) der Code angehalten werden muss, aber nicht WO (bei welcher Codezeile).
Wenn man jedoch die Stelle kennt, an der angehalten werden soll, ist STOP die geeignetere Methode.
Gruß Daniel
was erzählst Du mir das ? owT
11.01.2017 19:02:57
Matthias
AW: was erzählst Du mir das ? owT
11.01.2017 19:17:39
Daniel
dass du recht hast und dass ich deiner Meinung bin.
Gruß Daniel
Völlige sinnfreie Verteidigungshaltungen...
11.01.2017 22:15:35
EtoPHG
Ich habe einen Vorschlag auf die Anfrage gemacht, die der Anfrager als OK beurteilt hat und dir Cracks gehen alle in Verteidigungstellung. Wieso? Nur weil ich ein bisschen kritisch war?
Is ja gut, jedem Tierchen sein Pläsirichen...
Gruess Hansueli
Anzeige
AW: Völlige sinnfreie Verteidigungshaltungen...
11.01.2017 23:09:32
Daniel
wenn ich dich zitieren darf:
"Mir stehen die Haare zu Berge... Warum z.Teufel lasst "
das ist jetzt nicht nur "ein bisschen Kritisch" sondern schon ein Angriff auf emotionaler Ebene.
Luc hat dann noch mit seiner Vermutung der Unwissenheit (und dass nicht irgendwo Beitrag, sondern an hervorgehobener Stelle in der Überschrift) noch mal einen oben drauf gesetzt.
Wer so angreift, sollte sich nicht über eine entsprechende Gegenreaktion wundern.
Gruß Daniel
...und das inzwischen relativiert! Sorry! owT
12.01.2017 03:52:43
Luc:-?
:-?
AW: ...und das inzwischen relativiert! Sorry! owT
12.01.2017 09:31:27
Daniel
Hi Luc
ja, gelesen und akzeptiert.
Es ging mir in meinem Beitrag auch erstmal darum, Hansueli die Sachlage zu erklären.
Gruß Daniel
Anzeige
OT @Luc:-?
17.01.2017 16:35:16
Michael
Hi,
es freut mich, Dich nach der langen Pause wieder im Forum begrüßen zu dürfen, alter Affenmensch,
ebenso XnJ & Grüße,
Michael
OT: Ja, ja, dito! ;-) owT
17.01.2017 19:19:40
Luc:-?
:-?
Äh, mich oder die Affen...? ;-] owT
17.01.2017 19:20:52
Luc:-?
:-?
auch Dich, mein Lucus ;-)
17.01.2017 20:38:46
Michael
bis bald woanders...
M.
Bitte mit i --> Lucius! Wo woanders...? owT
17.01.2017 21:30:51
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige