0

あなたの助けが必要です。

このコードを実行している場合、問題は発生しません(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(cells(2、j + 3)、cells(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

4

1 に答える 1

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
于 2013-03-27T21:27:51.593 に答える