VBS - Simple Schleifen
Hallo,
irgendwie verstehe ich nicht so ganz, warum nachfolgender VBS-Code nicht funktioniert?
Die Schleife ist eine Endloschleife ... aber warum?
Danke vorab für eure Unterstützung.
irgendwie verstehe ich nicht so ganz, warum nachfolgender VBS-Code nicht funktioniert?
Wert1 = 10
Wert2 = 20
Do While Wert2 > Wert1
Wert2 = InputBox("Eingabe < " & Wert1,"Titel")
Loop
MsgBox "Neuer Wert2: " & Wert2
Die Schleife ist eine Endloschleife ... aber warum?
Danke vorab für eure Unterstützung.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 111379
Url: https://administrator.de/contentid/111379
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
3 Kommentare
Neuester Kommentar
Als ich das gerade nachgestellt habe, habe ich festgestellt, daß der Wert aus der InputBox als String erfaßt wird. Wert2 hat also nach der Eingabe einen String gespeichert, der sich so nicht mit Wert1 vergleichen läßt.
Versuch mal, die Zeile 05 Deines Codes wie folgt zu ergänzen:
Alternativ könntest Du am Anfang Deines Code die Variable Wert2 als Zahlenvariable dimensionieren:
Versuch mal, die Zeile 05 Deines Codes wie folgt zu ergänzen:
Wert2 = Val(InputBox("Eingabe < " & Wert1,"Titel"))
Alternativ könntest Du am Anfang Deines Code die Variable Wert2 als Zahlenvariable dimensionieren:
Dim Wert2 As Integer
@SarekHL
Da VBS: Keine Typdeklaration möglich, daher nur zB CInt() oder CDbl (die Funktion Val() gibt's nämlich auch nicht) - und zur Sicherheit noch ein IsNumeric() vorweg ...
Kleine Besonderheit am Rande: Ein Punkt wird bei der Konvertierung einfach ignoriert (aus 1.5 wird 15; Ausnahme: der Punkt steht am Anfang - dann "nicht numerisch") - daher zB zunächst noch Replace() verwenden - insgesamt dann etwa so:
Grüße
bastla
Da VBS: Keine Typdeklaration möglich, daher nur zB CInt() oder CDbl (die Funktion Val() gibt's nämlich auch nicht) - und zur Sicherheit noch ein IsNumeric() vorweg ...
Kleine Besonderheit am Rande: Ein Punkt wird bei der Konvertierung einfach ignoriert (aus 1.5 wird 15; Ausnahme: der Punkt steht am Anfang - dann "nicht numerisch") - daher zB zunächst noch Replace() verwenden - insgesamt dann etwa so:
Wert1 = 10
Wert2 = 20
Do While Wert2 > Wert1
Ein = InputBox("Eingabe < " & Wert1,"Titel")
If Isnumeric(Ein) Then
Wert2 = CDbl(Replace(Ein, ".", ","))
End If
Loop
MsgBox "Neuer Wert2: " & Wert2
bastla