将 VBA InputBox 值(十进制)乘以来自 Json url Web 查询的单元格值(十进制)
Multiply VBA InputBox value (decimal) by cell value (decimal) derived from a Json url Web Query
(更新)我是 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。
下载link:https://www.dropbox.com/sh/tg5f2a71k9jy6xq/AACrhI9_6VG8vJkDr0QVCbSUa?dl=0
我认为这是你的解决方案:
myValue = InputBox("Prompt", "Title")
Range("C5").Select
ActiveCell.FormulaR1C1 = myValue * Range("C1")
声明为 double 而不是 variant
Dim myValue As Double
myValue = InputBox("Prompt", "Title")
Range("C5").Value = myValue * Range("C1")
找到解决方案:
InputBox
接受小数输入的错误在于 "Thousands Separator" 设置以及您是输入逗号还是指向 InputBox
。我将 "Thousands Separator" 设置为使用点 .
,因为我正在处理 .csv 文件导出,所以它很有用。两者都可以,但您必须通过以下方式更改 Windows 小数点符号设置:
Control Panel > Language > Change date, time, or number formats > Additional Settings > Decimal symbol
.
至于乘法部分: 原来InputBox
returns一个字符串。使用 Val()
将数字字符串转换为数字并且是正确的 VBA 脚本:
Private Sub CommandButton1_Click()
Dim myValue As Variant
myValue = Val(InputBox("Prompt", "Title"))
Range("C5").Value = myValue * Range("C3")
End Sub
(更新)我是 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。
下载link:https://www.dropbox.com/sh/tg5f2a71k9jy6xq/AACrhI9_6VG8vJkDr0QVCbSUa?dl=0
我认为这是你的解决方案:
myValue = InputBox("Prompt", "Title")
Range("C5").Select
ActiveCell.FormulaR1C1 = myValue * Range("C1")
声明为 double 而不是 variant
Dim myValue As Double
myValue = InputBox("Prompt", "Title")
Range("C5").Value = myValue * Range("C1")
找到解决方案:
InputBox
接受小数输入的错误在于 "Thousands Separator" 设置以及您是输入逗号还是指向 InputBox
。我将 "Thousands Separator" 设置为使用点 .
,因为我正在处理 .csv 文件导出,所以它很有用。两者都可以,但您必须通过以下方式更改 Windows 小数点符号设置:
Control Panel > Language > Change date, time, or number formats > Additional Settings > Decimal symbol
.
至于乘法部分: 原来InputBox
returns一个字符串。使用 Val()
将数字字符串转换为数字并且是正确的 VBA 脚本:
Private Sub CommandButton1_Click()
Dim myValue As Variant
myValue = Val(InputBox("Prompt", "Title"))
Range("C5").Value = myValue * Range("C3")
End Sub