2017-08-29 8 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'を使用してください.100のうち99回これらのエラーは避けてください。 – ThunderFrame

+0

''ログに記録する必要があるエラーをログに記録する ' 'は有効なステートメントではありません。おそらく 'Debug.Print 'を意味しましたか?ログに記録する必要があるエラーを記録するか、あるいは' '記録する必要があるエラーを記録する' 'でしょうか? – ThunderFrame

答えて

0

その後、Val(HHs)は常に0なり、HHsが宣言されていない(そして、あなたはOption Explicitを使用していない)、またはあなたはHHsに値を割り当てていない場合....

など、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 
関連する問題