2017-10-22 12 views
2

私はユーザーに番号を入力させたいと思うVBAのプログラムを持っています。私は彼らが文字列を入力して再度試してもらうことができるようにしたい。これは私が試したことです:VBAでデータ型をチェックする

Sub getInterest() 
    annualInterest = InputBox("Please enter your annual interest rate as a decimal. ") 
     If TypeOf annualInterest Is Double Then 
      'Continue with program 
     Else 
      Call getInterest() 
     End If 
End Sub 

しかし、これは動作しません。

+0

使用ISNUMERICをお試しください。 – Shrikant

答えて

1

2行目の構文が間違っています。以下のコードを試してください。コードは、ユーザー入力が有効な番号である場合にのみ処理されます。

Sub getInterest() 
    annualinterest = InputBox("Please enter your annual interest rate as a decimal. ") 
     If IsNumeric(annualinterest) Then 
      'Continue with program 
     Else 
      Call getInterest 
     End If 
End Sub 
1

Excel VBAでは、既存のパラメータを使用して簡単に数値入力を行うことができます。

annualInterest = Application.InputBox("Please enter your annual interest rate as a decimal. ", , , , , , , 1)

それは有効な数値エントリを確保し、コールを保存することができます。

2

はこのような何か...

Sub getInterest() 
Dim annualInterest As Double 

Do While annualInterest = 0 
    annualInterest = Application.InputBox("Please enter your annual interest rate as a decimal.", "Annual Interest Rate!", Type:=1) 
Loop 
MsgBox annualInterest 
End Sub 
関連する問題