VBA中的Sumif不接受等式(接受为字符串)

时间:2014-12-19 18:58:50

标签: excel vba excel-vba

我正在尝试利用SumIf函数迭代一个名称表,并总结所有" Performance Savings"归因于单独数据表中的每个名称。

我的代码如下。当我运行宏时,它在SumIf行上崩溃。当我删除' ='在SumIf函数之前的字符将cellvalue指定为字符串而不是公式,宏运行正常,字符串正是我想要的。我不确定为什么当我将SumIf线作为公式时它会崩溃。

我试图引用类似的历史线程但没有成功。感谢我能得到的任何帮助!


Dim tempStr As String

For y = 1 To (b - 3)
    ActiveSheet.Cells((a + 1 + y), 1).Select
    tempStr = ActiveCell.Value
    Sheets("Pivot").Cells((a + 1 + y), 5).FormulaR1C1 = _
        "=SUMIF('Performance Savings'!$B$2:$B$200," & Chr(34) & tempStr & Chr(34) & ",'Performance Savings'!$C$2:$C$200) "

Next y

2 个答案:

答案 0 :(得分:0)

您需要将值放在 a b

答案 1 :(得分:0)

Gene的答案不是很明确,但他暗示你应该使用.Formula语法而不是R1C1。另外,作为一般经验法则,您应该Never use the Select method

Dim tempStr As String

For y = 1 To (b - 3)
    tempStr = ActiveSheet.Cells((a + 1 + y), 1).Value
    Sheets("Pivot").Cells((a + 1 + y), 5).Formula = _
        "=SUMIF('Performance Savings'!$B$2:$B$200," & Chr(34) & tempStr & Chr(34) & ",'Performance Savings'!$C$2:$C$200) "

Next y