2014-12-19 42 views
1

我試圖利用SumIf函數迭代一個名稱表,並將歸於每個名稱的所有「性能節省」彙總到單獨的數據表中。VBA中的Sumif將不接受方程式(接受爲字符串)

我的代碼如下。當我運行宏時,它在SumIf行崩潰。當我在SumIf函數之前刪除'='字符以將字符串值指定爲字符串而不是公式時,該字符串正是我所希望的。我不確定爲什麼當我使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 
+0

請看下面的線程中的答案 - 我希望它們會很有用:http://stackoverflow.com/questions/341258/write-a-formula-in-an-excel-cell-使用-VBA –

回答

0

您需要將值一個b

0

基因的答案不是很清楚,但他影射的事實,你應該使用.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