VBA:使用Inputbox中的值进行乘法运算

mit*_*air -2 excel vba excel-vba

我们是否有任何解决方案可以使此代码正常工作

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

预期:此代码将从字段中选择值,并将其与Inputbox中提供的值相乘.

Mat*_*don 5

Dim Euro1 As String
Run Code Online (Sandbox Code Playgroud)

你宣称Euro1是一个String.字符串是VBA中的原始类型,原始类型没有可以调用的成员,这意味着:

Debug.Print Euro1.Value
Run Code Online (Sandbox Code Playgroud)

是非法的.

如果你有String,你可以简单地使用它:

ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1
Run Code Online (Sandbox Code Playgroud)

这肯定会导致其他问题:您需要阅读用户输入验证.系统地将用户输入视为有效的代码总是会遇到问题.在这里,我们看到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
Run Code Online (Sandbox Code Playgroud)