Komische Ergebnisse bei VBA If-Abfrage

derdoc

Grünschnabel
Hi,
bei mir ist gerade ein Problem aufgetreten.
Unzwar habe ich folgendes Skript geschrieben

Code:
Sub test()
    Dim Wert1, Wert2, Wert3 as String
    Dim Ergebnis as Integer

    Wert1 = "3"
    Wert2 = "25"
    Wert3 = "45"

    If Wert1 > Wert2 And Wert1 < Wert3 Then 
        MsgBox (Wert2 & " < " & Wert1 & " < " & Wert3 & " IST FALSCH, WIRD ABER ALS RICHTIG ERKANNT")
End Sub

Da stimmt ja was nicht, weiß jemand warum?

Wäre echt nett, wenn da jemand ne Lösung für hat :)

Liebe Grüße,
Friedemann
 
Wenn Du die Werte als String deklarierst, erfolgt der Größenvergleich sozusagen alphabetisch. d.h. "3" ist größer als "25", weil die "3" größer als die "2" ist.

Deklarier die Variablen als Integer, dann klappts.
 
Guten Morgen,
das Problem ist ja, dass diese Werte in Datenbankfeldern stehen, die als String genommen werden...
Wenn ich die Zellen als Zahlen definiere, habe ich auch das gleiche Problem...

Edit: Ich habe es jetzt doch geschafft^^ War einfach einfach :p. War nur nen CInt( Ausdruck )
 
Zuletzt bearbeitet:
Wenns Strings bleiben müssen, probiers doch mit Val():
Visual Basic:
Sub test()
    Dim Wert1, Wert2, Wert3 as String
    Dim Ergebnis as Integer

    Wert1 = "3"
    Wert2 = "25"
    Wert3 = "45"

    If Val(Wert1) > Val(Wert2) And Val(Wert1) < Val(Wert3) Then
        MsgBox (Wert2 & " < " & Wert1 & " < " & Wert3 & " IST FALSCH, WIRD ABER ALS RICHTIG ERKANNT")
    End If
End Sub
Mit Val() wandelst du Strings in Zahlen um, dann funktioniert deine If-Abfrage.


Der Doc! (und zwar der richtige :D)
 

Neue Beiträge

Zurück