2017-12-28 8 views
-2

から値を使用して乗算が期待VBA:INPUTBOX

Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1.Value 
End Sub 

、我々はこのコードの作業を取得するためにすべてのソリューションを持っていますか: このコードは、フィールドから値を選択して、で与えられた値でそれを掛けますInputbox。

+4

'.Value'部分を削除します。 – braX

+0

ありがとう@braXそれは働いた、私は本当に愚かです、それについて考えていない –

答えて

0
Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 
End Sub 

試してみてください:)

5
Dim Euro1 As String 

をあなたはStringとしてEuro1を宣言しています。文字列は、VBAでプリミティブ型であり、プリミティブ型は、このことを意味し、あなたが呼び出すことができるメンバーを持っていない:

Debug.Print Euro1.Value 

は違法です。

あなたはStringを持っている場合は、単にそのように使用することができます。

ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 

これは間違いなくかかわらず、他の問題が発生します:あなたはユーザー入力の検証をよく読んでする必要があります。ユーザーの入力を体系的に有効に扱うコードでは、常に問題が発生します。ここではExcelが=RC[-1]*Hi There I'm some invalid inputの値を計算できないのを見ています。

組み込み関数IsNumericを使用して、文字列を数字として扱うことができるかどうかを判断することを検討してください。

If IsNumeric(Euro1) Then 
    ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 
Else 
    MsgBox "Invalid input!" 
End If