Anzeige
Archiv - Navigation
1884to1888
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

Eigenleben von For ... Next Schleifen?

Eigenleben von For ... Next Schleifen?
08.06.2022 15:19:52
For
Moin aus Hamburg,
bei meinen Projekt scheinen sich Laufvariablen von For ... Next selbständig zu machen
(Beispielcode weiter unten). Da scheint die Variable J sich "eigenwillig" zu verhalten.

Sub Demo
Dim I as Integer, Imin as Integer, Imax as Integer
Dim J as Integer
Dim Target as Range
For I = Imin To Imax
Set Target = ThisWorkbook.Sheet(...).Range("Bereich" & Format(I, "00"))
'Die Bereiche in Sheet(...) sind durch Namen definiert.
For J = 1 To 2
If J = 1 then
Target(5, 109).Value = 1
'MsgBox(Target(5, 109).Value) ergibt tatsächlich "1"
End If
If J = 2 then
Target(5, 150).Value = 2
'MsgBox(Target(5, 150).Value) ergibt tatsächlich "2"
End If
Next J
'MsgBox(J) ergibt hier "3"
Next I
End Sub
'Der Wert "2", der in Target(5, 150) erscheinen soll, erscheint in Sheet(...)
in Target(5, 109) entgegen den Angaben in den ersten beiden message boxes.
'Zur Fehlersuche getestet: For J = 1 to 1.
'Jetzt erscheint der Wert "1" in Sheet(...) in Target(5, 150)
Vielen Dank im Voraus
Dieter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 15:29:49
For
was mir sofort augefallen ist, dir fehlt ein s.
Set Target = ThisWorkbook.Sheets(...).Range("Bereich" & Format(I, "00"))
Dass J nach der Schleife 3 ergibt, ist normal
Gruß
Rudi
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 15:54:38
For
Danke Rudi,
im Originatext steht "Sheets", wäre ja sonst als Programmfehler aufgefallen.
Nach dem Programmcode sieht es so aus, dass der Programmabschnitt in "If J = 1 ... End If"
ausgeführt wird, obwohl J in For ... To bereits auf J = 2 gesetzt wurde.
Habe versucht, den Wert J direkt nach For ... To durch JTemp = J "festzuhalten" und weiter unten
"If J = 1 ... End If" durch "If JTemp = 1 ... End If" ersetzt. Ohne Erfolg.
Viele Grüße
Dieter
Anzeige
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 16:07:00
For
Hallo Rudi K.,
bei 'Zur Fehlersuche getestet:

For J = 1 to 1 
ergibt die Messagebox nach Verlassen der Schleife für J dann 2
Gruß Gerd
AW: Sorry @ Dieter! o.T.
08.06.2022 16:08:21
GerdL
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 16:35:23
For
Moin Gerd,
die entscheidenden Operationen liegen in der Schleife J = 1 To 1:
If J = 1 then ... und If J = 2 then ... . Durch J = 1 to 1 als Test sollt nur der
Code für die Bedingung J = 1 durchlaufen weden, der Code für J = 2 nicht.
Tatsächlich erhielten die für J = 2 beschriebenen Zellen Einträge, was
ja durch For J = 1 To 1 ausgeschlossen sein sollte.
Beste Grüße
Dieter
Anzeige
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 16:49:30
For
Löschst du die Inhalte vor jedem Test?
Oder stehen da noch die Inhalte von vorherigen Tests drin?
Wenn du die Zellinhalte abfragst, musst du da aufpassen, den die Zellen behalten ihren Wert.
Gruß Daniel
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 17:53:27
For
Hallo Daniel und alle anderen,
Fehler gefunden und beseitigt, lag bei mir. Wenn Ihr so wollt, habe ich den Programmcode "totindiziert".
Suchmethode: Zelle(n) gesperrt, Blatt geschützt und auf Programmabsturz gewartet ... Punktlandung
beim Fehler im Code.
Noch einmal vielen Dank und viele Grüße
Dieter
AW: Eigenleben von For ... Next Schleifen?
08.06.2022 17:19:06
For

For I = Imin To Imax
Imin und Imax sind beide gleich Null, da du sie nur dimensioniert, ihnen aber keinen Wert zugewiesen hast.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige