2016-05-04 6 views
2

私はVBAが誤っ(私見)を評価し、次の簡単なコードを、持っていると私も広範囲にウェブを検索した後、それを把握することはできません。VBAは評価>と<演算子が誤っ

ElseIf TextBoxSNo.Value < 1 Then 
    MsgBox ("Please choose existing S.No") 
    Exit Sub 
ElseIf TextBoxSNo.Value > Cells(LastRow, 1).Value Then 
    MsgBox ("Please choose existing S.No") 
    Exit Sub 

このコードは値をristricts Excelのユーザーフォームを入力することができます。ユーザーが1より小さい値またはセル(LastRow、1).Valueよりも高い値を入力すると正常に動作します。

ただし、有効な値を入力すると、エラーメッセージが表示されます。どうすればいいの?エラーメッセージとともにMsgBoxにコードを出力することで、コードが評価した値をチェックしました。本当にvbaが5> 100を真と評価し、エラーメッセージを出力するようです。

編集:最初のElseIfステートメントのみを保持すると、正常に動作します。 2番目のElseIfを追加した場合のみ、間違って評価されます。 LastRowは整数として定義されているので、数値と数値を比較しています

ありがとうございました!

+2

かかわらず、これを必要とする理由

いけない、本当に理解できますか?比較する前にすべてを数値に変換してみてください。 – moffeltje

+0

私は両方が数字であることを確信しています。 LastRowはIntegerとして定義されます。 –

+1

途中で本当に助けてくれてありがとう。 –

答えて

2

1つのヒント - 任意の式にVal()関数を使用して、数値と数値を比較していることを確認してください。式が変換できない場合、Val()は0を返します。これは時には便利なこともあります。

-1

私はval()関数を使用しています。ヒントをありがとう!

のval(細胞(LASTROW、1).Valueの)あなたはそのような文字列か何かで数字と数字ではなく数字を比較しているよろしいです私は

関連する問題