在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