(已更新)我是VBA的新手,已经尝试了数小时的各种尝试,但是我似乎无法弄清楚如何将十进制用户输入1.1乘以C1的单元格值(71388.92)。这是我最后尝试过的:
Private Sub CommandButton1_Click()
Dim myValue As Variant
myValue = InputBox("Prompt", "Title")
Range("C5").Value = myValue * Range("C1")
End Sub
我收到运行时错误'13'-类型不匹配,可能是因为单元格C1
的值是从json网络查询派生的。我已经尝试了Variant,Double,Single,Long和数据类型的Decimal,Number和Currency。
下载链接:https://www.dropbox.com/sh/tg5f2a71k9jy6xq/AACrhI9_6VG8vJkDr0QVCbSUa?dl=0
答案 0 :(得分:0)
我认为这是您的解决方案:
myValue = InputBox("Prompt", "Title")
Range("C5").Select
ActiveCell.FormulaR1C1 = myValue * Range("C1")
答案 1 :(得分:0)
声明为double而不是变体
Dim myValue As Double
myValue = InputBox("Prompt", "Title")
Range("C5").Value = myValue * Range("C1")
答案 2 :(得分:0)
找到解决方案:
InputBox
接受小数点输入的错误在于“千位分隔符”设置,以及输入逗号还是指向InputBox
。我将“千位分隔符”设置为使用点.
,因为我正在处理.csv文件导出,因此它很有用。两种方法都可以,但是您必须通过以下步骤更改Windows十进制符号设置:
Control Panel > Language > Change date, time, or number formats > Additional Settings > Decimal symbol
。
对于乘法部分:原始InputBox
返回一个字符串。使用Val()
将数字字符串转换为数字,并且是正确的VBA脚本:
Private Sub CommandButton1_Click()
Dim myValue As Variant
myValue = Val(InputBox("Prompt", "Title"))
Range("C5").Value = myValue * Range("C3")
End Sub