Wie kriege ich alles in eine Programmzeile?
#1
Hallo liebe Leute,

schaut euch bitte folgendes kleines Codefragment an:


For i = 1 To 10 :: If i > 5 Then Debug.Print " i > 5"
Next

Durch Setzen  von Doppelpunkten  kann ich Programmzeilen nebenander schreiben, statt untereinander.
Meine Frage, wie kriege ich es hin, dass das "Next" auch noch in einer Zeile steht?
Geht so etwas überhaupt?
Danke.
Top
#2
Hallo,

so

Code:
For i = 1 To 10: If i > 5 Then Debug.Print " i > 5": Next
Gruß Stefan
Win 10 / Office 2016
Top
#3
Scheint in Verbindung mit einer If-Anweisung nicht zu klappen. Ohne If geht es wie von Steffl geschrieben.
Schöne Grüße
Berni
Top
#4
Das liegt daran, dass man mehrere Befehle im Then-Zeil einer If-Zeile ausführen kann, wenn man diese mit dem Doppelpunkt trennt. ist z. B. die Bedingung in folgender Zeile Wahr, werden beide Anweisungen ausgeführt:
Code:
if i > 0 then Debug.print i: debug.print "i ist größer als 0"
Ein End If ist aber nur zulässig, wenn die if-Anweisung nicht in einer Zeile steht. Daher ist mW eine For-Next-Schleife mit If-Then in einer Zeile nicht möglich. Das Next müsste in eine eigene Zeile. Alternativ könnte mann iif verwenden.
Gruß
Michael
Top
#5
Hallo liebe Leute,


also wenn ich das jetzt richtig sehe, gibt es keine Möglichkeit die For Next Schleife
mittels Doppelpunkt  so um die If Anweisung zu legen, dass man am Ende nur eine
Programmzeile hat, oder?
Top
#6
Moin!
Darf ich mal fragen, was Du Dir von weniger Zeilen versprichst?
Der Code jedenfalls wird dadurch ja nicht kürzer.
Ich selber verwende die DP-Programmierung (fast) nur in folgenden beiden Fällen:
  1. direkte Zuweisung einer Variablen:
    Dim a$: a = Tabelle1.Range("A1").Text
  2. .PasteSpecial angelehnt an den "normalen" .Copy-Einzeiler:
    Range("A1:Z100").Copy: Range("A1").PasteSpecial xlPasteValues
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Hallo Ralf,

warum ich an der DP-Programmierung so interessiert bin hat einen einfachen
Grund. Ich wandle meinen Code oft ins Epub Format um.
Diesen kann ich mir dann unabhängig von meinem Computer
auch  "offline" auf meinen E-Book Reader anschauen. Ist halt
eine Darstellungssache. Aber wenns nicht geht, dann gehts nicht.
Schade.
Top
#8
Hallöchen,

würden Dich leere Zeilen im Debug stören? Wenn nicht, eventuell so:
Code:
Sub test2(): Dim i, a: For i = 1 To 2: a = IIf(i > 5, "i > 5", ""): Debug.Print a: Next: End Sub


oder Du lagerst das if aus:
Code:
Sub test(): Dim i: For i = 1 To 2: iii (i): Next: End Sub
Sub iii(i): If i = 1 Then Debug.Print i
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste