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

问题描述 投票:-2回答:2

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

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

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

excel vba excel-vba
2个回答
0
投票
Sub FindSum()
    Dim Euro1 As String
    Euro1 = InputBox("", "")
        ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1
End Sub

试试:)


5
投票
Dim Euro1 As String

你宣布Euro1是一个String。字符串是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
© www.soinside.com 2019 - 2024. All rights reserved.