在Excel VBA中将整数与货币相乘
在我的Excel表中,我有一行(第五行)作为项目的数量和另一个(第六行)作为项目的价格。 例如,我想用$ 56.50乘以200,但我遇到了这个脚本的问题。 任何人都可以请帮忙。
Sub calcprice() Dim i As Integer Dim iRowNumber As Integer ' Integer to store result in Dim val As Double iRowNumber = InputBox(Prompt:="Number of Rows", _ Title:="Rows: ", Default:="# of Rows") For i = 1 To iRowNumber If Cells(i, 5).Value >= 0 And Cells(i, 6).Value >= 0 And IsEmpty(Cells(i, 5)) = False And IsEmpty(Cells(i, 5)) = False Then val = FormatCurrency(Cells(i, 5).Value) * Cells(i, 6).Value Cells(i, 7).Value = val End If Next i End Sub
它说运行时错误13
types不匹配这里是图像:
这里是链接: https : //www.dropbox.com/s/lla2cuz8hqu5qyp/test.xlsm
我也不能用= a * bi来使用macros!
你不需要循环
你可以在colunm G中使用一个单一的射程
- 从G5向用户input的
iRowNumber
添加一个公式,以testing每行中是否发生结果> 0(或者为0结果添加""
) -
用这些值覆盖公式
Sub calcprice() Dim iRowNumber As Long ' Integer to store result in iRowNumber = InputBox(Prompt:="Number of Rows", _ Title:="Rows: ", Default:="# of Rows") With Range(Cells(5, 7), Cells(iRowNumber, 7)) .FormulaR1C1 = "=IF(N(RC[-1]*RC[-2]),RC[-1]*RC[-2],"""")" .Value = .Value End With End Sub
试试这个。 请记住将第五格和第六格设置为您喜欢的货币!
Sub calcprice() Dim iRowNumber As Integer Dim val As Double iRowNumber = InputBox(Prompt:="Number of Rows", _ Title:="Rows: ", Default:="# of Rows") For i = 1 To iRowNumber If Cells(i, 5).Value >= 0 And Cells(i, 6) >= 0 Then If Cells(i, 6).Value > 0 Then val = Cells(i, 5).Value * FormatCurrency(Cells(i, 6).Value) Cells(i, 7).Value = val End If End If Next i End Sub
你有For i = 1 to iRowNumber
图像显示数据从第5行开始。前面的行包含文本。
因此,试试For i = 5 to iRowNumber