2017-08-29 3 views
0
Dim HHs As String 
HHs = Mid("2345", 1, 2) 

If Val(HHs) > 23 Then 
"Log the Error that needs to be logged" 
End If 

Der obige Code schlägt bei der Validierung fehl. Dies scheint ein sehr einfaches Problem zu sein Irgendeine Idee warum?Vergleich mit Val() - Funktion in VB6 fehlgeschlagen?

+0

Wo ist 'MMs' Zuordnung ??? –

+0

'HHe' ist nicht die selbe Variable wie' HHs' - ** Immer ** benutzen 'Option Explicit', und Sie vermeiden diese Fehler 99 von 100. – ThunderFrame

+0

' "Log den Fehler, der protokolliert werden muss" 'ist keine gültige Aussage. Hast du vielleicht 'Debug.Print 'gemeint? Logge den Fehler, der protokolliert werden muss" 'oder vielleicht'' Protokolliere den Fehler, der protokolliert werden muss'? – ThunderFrame

Antwort

0

Wenn HHs wurde nicht deklariert (und Sie haben nicht Option Explicit verwendet wird), oder Sie haben einen Wert HHs nicht belegt, dann wird Val(HHs) immer 0 sein ....

Als solche Val(HHs) > 23 wird immer False sein.

Es scheint wahrscheinlich, dass Sie einen Tippfehler gemacht haben und HHe verwenden?

+0

Hey ja, das war ein Tippfehler. Ich habe die Frage bearbeitet. – rohit

0

Der Code funktioniert wie erwartet: die wenn die Bedingung falsch ist, da Val (PHPOE) ist 23.

Option Explicit 

Private Sub CommandTest_Click() 
    Dim HHs As String 
    HHs = Mid("2345", 1, 2) 

    If Val(HHs) > 23 Then 
     MsgBox "Log the Error that needs to be logged" 
    End If 
End Sub