2016-04-22 17 views
0

は、ここで私はVariable(すなわちtext_bval)にStringあるTextbox.Valueを読み取ろうとするとStringLongには、私の計算のためのCLng機能を使用していることを変換しています。 CLng関数は、型の不一致のような実行時エラーを表示しています。ユーザーフォームのテキストボックスの値をExcel VBAのLong型に変換するにはどうすればよいですか?

以下の私のコードを参照してください:、

Dim text_bval As String 
Dim text_long As Long 
Dim per As Integer 
text_bval = text_box.value 
user_entry = CLng(text_bval) 
+0

例のデータも表示してください。タイプの不一致は、変数内に予期しない(または意図しない)データがある可能性があることを示します。 – Vegard

答えて

2

MS Documentationによると、「expressionロングサブタイプの許容範囲外にある場合は、エラーが発生します。」

この場合、式はtext_bval、文字列です。文字列に数字に変換できない文字が含まれていると、エラーが発生します。例えば

:その後、

text_bval = "2"CLng(text_bval) = 2

text_bval = "2.3"その後、CLng(text_bval) = 2

text_bval = "hello"その後、CLng(text_bval) = ERROR

occuringからのエラーを防止するために、次のような何かを行う必要があります。

user_entry = 0 
On Error Resume Next 
user_entry = CLng(text_bval) 
On Error GoTo 0 
+0

「Exit Function」などがあると思います。なぜなら、成功すれば 'On Error GoTo 0'を実行するからです。私は正しい?もしそうでなければ私を訂正してください。 – flohdieter

+1

「On Error GoTo 0」は、エラートラッピングの通常の状態です。あなたは必要以上に「On Error Resume Next」状態にとどまることは望ましくありません。 – OldUgly

+0

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

関連する問題