2013-03-27 59 views
0

我需要你的幫助。使用範圍單元格的sumifs - 錯誤1004

如果我運行這段代碼,有沒有問題發生(是關注Sheet1.Range(「F2:BL6991」))

Colnumber = Sheet2.Range("A1").End(xlToRight).Column 
    'MsgBox (Colnumber) 

    For j = 3 To Colnumber 

     For i = 2 To Rownumber 
     Sheet2.Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheet1.Range("F2:BL6991"), Sheet1.Range("E2:E6991"), Sheet2.Cells(i, 1)) 


     Next i 

    Next j 

但是當我嘗試改變這種代碼:(ⅰ從Sheet1.Range我的代碼(改變 「F2:BL6991」),以Sheet1.Range(細胞(2,J + 3),細胞(6991,J + 3)))

Colnumber = Sheet2.Range("A1").End(xlToRight).Column 
     'MsgBox (Colnumber) 

     For j = 3 To Colnumber 

      For i = 2 To Rownumber 
      Sheet2.Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheet1.Range(cells(2,j+3), cells(6991, j+3)) , Sheet1.Range("E2:E6991"), Sheet2.Cells(i, 1)) 


      Next i 

     Next j 

它給了我錯誤1004.

即使我用這個代碼,它給了我同樣的錯誤:

Sheet1.Range(cells(2,6), cells(6991, 6)) 

Sheet2.Cells(i, j).Value = varResult 
     varResult = Application.WorksheetFunction.SumIfs(_ 
         Arg1:=Sheet1.Range(Cells(2, 6), Cells(6991, 6)), _ 
         Arg2:=Sheet1.Range("E2:E6991"), _ 
         Arg3:=Sheet2.Cells(i, 1)) 

你能指導我哪裏做錯了,如何也解決?

TIA

+0

(1)你爲什麼要使用SUMIFS而不是SUMIF了單標準測試(2)'F2:BL6991'應該是單列 – brettdj 2013-03-27 04:41:53

+0

我已經嘗試將我的代碼更改爲:'Sheet2.Cells(i,j).Value = Application.WorksheetFunction.SumIf(Sheet1.Range(「E2 :E6991「),Sheet2.Cells( i,1),Sheet1.Range(Cells(2,j + 3),Cells(6991,j + 3))),'。但還是給我的錯誤, – 2013-03-27 08:13:23

回答

0

你的主要問題是,SUMIF僅持有3個參數:

SUMIF(range, criteria, [sum_range]) 

這將工作:

Dim Range1 As Range 
Dim Condition As Range 

Set Range1 = Worksheets("Sheet1").Range("F2:BL6991") 

Colnumber = Sheet2.Range("A1").End(xlToRight).Column 
For j = 3 To Colnumber 
    For i = 2 To 10 
     Set Condition = Worksheets("Sheet2").Cells(i, 1) 
     Sheet2.Cells(i, j).Value = Application.WorksheetFunction.SumIf(Range1, Condition) 
    Next i 
Next j 
+0

它的作品...但稍加修改如下: '昏暗範圍1,範圍2爲靶場 昏暗的條件作爲範圍 設置範圍1 =工作表(「3G」)列(5) 。 Colnumber = Sheet2.Range( 「A1」)。完(xlToRight).COLUMN 「MSGBOX(Colnumber) 對於j = 3要Colnumber K = J + 3 MSGBOX(k)的設置 =範圍2工作表(」 (i,1) Sheet2.Cells(i,j).Value = Application.W(對於i = 2到Rownumber) 設置條件=工作表(「Sheet2」)。 orksheetFunction.SumIfs(範圍2,範圍1,條件) 接下來我 接下來j' 感謝線索 – 2013-04-03 07:35:15

+0

有你這句話包含,它扭曲了答案的真實性@WhisnuragaPutra請不要修改別人的答案。如果你想添加一些有用的東西來解決你的問題,請添加你自己的答案。 – 2013-04-03 07:40:15

+0

指出。感謝提醒。對不便之處感到抱歉 – 2013-04-08 09:40:05

相關問題