VBS If...Else funktioniert nicht
Hallo Leute,
ich habe ein kleines VBS Skript geschrieben und in dem folgenden Auschnitt habe ich ein Problem.
Es handelt sich um eine ganz normale If-Else Struktur die nie in den Else Case kommt, d.h. gebe ich einen Wert ein der nicht mehr unter If fällt wird zwar anstatt "Wscript.echo(a(rc-1))" nichts ausgegeben, allerdings eben auch keine Abbruch oder Fehler Message, es passiert einfach nichts im Else Fall.
Kann mir jemand von euch helfen, ich steh da echt auf dem Schlauch.
Vielen Dank schon mal
Deadwalker
ich habe ein kleines VBS Skript geschrieben und in dem folgenden Auschnitt habe ich ein Problem.
If (rc <= length) Or (rc >= LBound(a)) Then
Wscript.echo(a(rc-1))
Else
'this else case is never reached or printed for some reason
Wscript.Echo "Abbruch"
MsgBox "Option is not available.",48,"Warning"
End If
Es handelt sich um eine ganz normale If-Else Struktur die nie in den Else Case kommt, d.h. gebe ich einen Wert ein der nicht mehr unter If fällt wird zwar anstatt "Wscript.echo(a(rc-1))" nichts ausgegeben, allerdings eben auch keine Abbruch oder Fehler Message, es passiert einfach nichts im Else Fall.
Kann mir jemand von euch helfen, ich steh da echt auf dem Schlauch.
Vielen Dank schon mal
Deadwalker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69601
Url: https://administrator.de/contentid/69601
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
6 Kommentare
Neuester Kommentar
Moin Deadwalker,
warum schreibst Du dann nicht einfach..
dann würde es doch laufen, oder?
Grüße
Biber
[Edit]
@bastla
> ..Hast Du schon einen negativen Wert für "rc" getestet
Er vielleicht nicht, aber bei mir war es die erste Proof-of-Concept-Aktion.. *gg
Und eine "OR"-Verknüpfung kann doch nur in die Grütze gehen, wenn 3 Variablen mit 2 Bedingungen etwas 1deutiges ergeben sollen.
[/Edit]
warum schreibst Du dann nicht einfach..
...
If (rc <= length And rc >= LBound(a)) Then
....
Grüße
Biber
[Edit]
@bastla
> ..Hast Du schon einen negativen Wert für "rc" getestet
Er vielleicht nicht, aber bei mir war es die erste Proof-of-Concept-Aktion.. *gg
Und eine "OR"-Verknüpfung kann doch nur in die Grütze gehen, wenn 3 Variablen mit 2 Bedingungen etwas 1deutiges ergeben sollen.
[/Edit]
Hallo Deadwalker!
Damit das nicht zu einem Stochern im Nebel verkommt: Könntest Du es uns vielleicht mit konkreten Angaben zu den Variableninhalten ein wenig leichter machen?
Vorschläge bis dahin: Entferne "On Error Resume Next" und ändere im "If"-Statement die Abfrage auf "rc > LBound(a)".
Hast Du schon einen negativen Wert für "rc" getestet (da mit einiger Wahrscheinlichkeit "LBound(a)" den Wert 0 liefern dürfte)?
Grüße
bastla
Damit das nicht zu einem Stochern im Nebel verkommt: Könntest Du es uns vielleicht mit konkreten Angaben zu den Variableninhalten ein wenig leichter machen?
Vorschläge bis dahin: Entferne "On Error Resume Next" und ändere im "If"-Statement die Abfrage auf "rc > LBound(a)".
Hast Du schon einen negativen Wert für "rc" getestet (da mit einiger Wahrscheinlichkeit "LBound(a)" den Wert 0 liefern dürfte)?
Grüße
bastla
@Biber: Du hast wesentlich mehr Phantasie als ich und wahrscheinlich wieder einmal recht mit Deiner Vermutung, dass eigentlich "And" gemeint wäre.
Unabhängig davon würde ich einen Vergleich von "rc" auch auf Gleichheit mit "LBound(a)" bei nachfolgender Verwendung von "a(rc-1)" als, wie Du in solchen Fällen gern sagst, suboptimal ansehen ...
Grüße
bastla
Unabhängig davon würde ich einen Vergleich von "rc" auch auf Gleichheit mit "LBound(a)" bei nachfolgender Verwendung von "a(rc-1)" als, wie Du in solchen Fällen gern sagst, suboptimal ansehen ...
Und eine "OR"-Verknüpfung kann doch nur in die Grütze gehen, wenn 3 Variablen mit 2 Bedingungen etwas 1deutiges ergeben sollen.
... auch ohne 0 Ahnung unterstellen zu wollen ...Grüße
bastla