Endlosschleife
25.01.2009 02:25:00
Kalle
ich habe zwei Fragen.
1. Warum erhalte ich als Rückgabewert z.B 109,779998779296 zurück und nicht den Inhalt der Zelle 109,78 (also 109,78000000000).
und
2. Wenn die Bedingung für die äußere Schleife
(Do Until ActiveCell.Value = 1)
erneut erfüllt ist, bevor die Bedingung der inneren Schleife
(Do Until ActiveCell.Offset(0, -1).Value = proof + ref2)
erfüllt ist, läuft die Schleife endlos weiter bzw. liefert den Rückgabewert der letzten Abfrage (z.B. die 1. Bedingung liefert den Rückgabewert der 2. Bedingung).
Wie kann ich die innere Schleife zwingen auf die äußer zu "warten"?
Private Sub CommandButton1_Click()
Dim proof As Single
Dim ref1 As Single
Dim ref2 As Single
Dim marker As String
ActiveSheet.Range("b2").Select
weiter:
Do Until ActiveCell.Value = 1
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then Exit Sub
Loop
proof = ActiveCell.Offset(0, -1)
marker = ActiveCell.Offset(0, 1).Address
ref1 = "-0,2"
ref2 = "+0,4"
ActiveSheet.Range("b2").Select
Do Until ActiveCell.Offset(0, -1).Value = _
proof + ref2
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then Exit Sub
Loop
proof = ActiveCell.Offset(0, -1).Value
Range(marker).Select
ActiveCell.Value = proof
ActiveCell.Offset(1, -1).Select
GoTo weiter
End Sub