2017-08-17 60 views
0

我有麻煩時,我嘗試寫一個for循環來分配各行有一個具有公式的單元格SUMIF無法取得預期的結果在使用Excel VBA SUMIF

For r = 2 To counter5 - 1 
    temp_str = "B" + CStr(r) 
    Sheets("Result").Cells(r, 18).Offset = _ 
     WorksheetFunction.SumIf(Range("B2:B5000"), """*" & temp_str & "*""", _ 
     Range("I2:I5000")) 
Next 

哪個counter5存儲我的「結果」工作表的最後一行數,在我運行代碼之後,我只在列R的單元中得到0,我做了什麼錯誤導致我無法獲得預期的結果,我也嘗試過將「偏移量」方法改爲「公式」,但仍得到相同的結果。

+0

在雙引號中放置*錯誤。把它放在中間這樣「」*「」。在兩個地方(變量之前和之後)。 – Sixthsense

+0

這個:'「」「*」&temp_str&「*」「」'應該是:'「*」&temp_str&「*」' – Rory

+0

我試圖改變引號,但結果仍然相同。任何與配置相關的東西可能會影響? –

回答

0

對於WorksheetFunction.SumIf,下面的工作(與你當前的代碼,您正在搜索字符串「B2」,例如,要在單元格的值,我能想象嗎?):

For r = 2 To counter5 - 1 
    Sheets("Result").Cells(r, 18).Offset = _ 
     WorksheetFunction.SumIf(Range("B2:B5000"), "*" & Cells(r, 2) & "*", _ 
     Range("I2:I5000")) 
Next