2017-08-29 39 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 

上述代码未通过验证。 这似乎是一个非常简单的问题 任何想法为什么?在VB6中使用Val()函数进行比较失败?

+0

哪里'MMs'分配??? –

+0

'HHe'与'HHs'不同 - **总是**使用'Option Explicit',你将避免99次出现这些错误。 – ThunderFrame

+0

'“记录需要记录的错误” '不是一个有效的陈述。你可能是指'Debug.Print“记录需要记录的错误”'或者''记录需要记录的错误'? – ThunderFrame

回答

0

如果HHs尚未声明(和你没有使用Option Explicit),或者你还没有分配一个值HHs,然后Val(HHs)永远是0 ....

因此,Val(HHs) > 23将永远是False

看起来你可能犯了一个错字,并打算使用HHe

+0

嘿是的,这是一个打字错误。我编辑了这个问题。 – rohit

0

的代码按预期方式工作:如果条件为假,因为缬氨酸(HHS)为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