1

以下のコードを実行しているとき

Sub test2() Dim i, 
Rownumber As Integer 
Rownumber = Sheets("Sheet4").Range("A65536").End(xlUp).Row

    For i = 2 To Rownumber

            Sheets("Sheet4").Cells(i, 3).Formula = "=sumif(Sheet3!$A$2:$A$10, Sheet4!A2, Sheet3!$B$2:$B$10)"

        Next i
         End Sub

マクロは正常に実行されていますが、マクロVBAに変換すると次のようになります。

Sub test2()
Dim i, Rownumber As Integer
Rownumber = Sheets("Sheet4").Range("A65536").End(xlUp).Row

For i = 2 To Rownumber

        Sheets("Sheet4").Cells(i, 3).Value = Application.WorksheetFunction.SumIfs(Sheets("Sheet3").Range("A2:A10"), Sheets("Sheet4").Cells(2, 1), Sheets("Sheet3").Range("B2:B10"))

    Next i

End Sub

エラーが発生します->実行タイプエラー13、タイプミスマッチ

なぜこれが起こるのか、そしてそれを修正する方法の手がかりはありますか?-ケース入りクローズ

ありがとう

問題2

以下のコードは、実行時に正常に実行されています。

 For j = 3 To Colnumber

            For i = 2 To Rownumber
            Sheets("Sheet2").Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheets("3G").**Range("F2:F6991")**, Sheets("3G").Range("E2:E6991"), Sheets("Sheet2").Cells(i, 1))


            Next i

        Next j

しかし、なぜ私がそれをに変更するとき:

Sheets("Sheet2").Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheets("3G").**Range(Cells(2, 6), Cells(6991, 6))**, Sheets("3G").Range("E2:E6991"), Sheets("Sheet2").Cells(i, 1))

エラーが発生しました:エラー1004、アプリケーション定義または定義済みオブジェクトエラー??

TIA

4

1 に答える 1

0

SumIfではありませんSumIfs。引数の順序が異なるため、エラーが発生します。

SumIfs合計される範囲(マルチセル範囲)から始まり、その後に基準範囲(マルチセル範囲)と基準(単一セル)のペアが続きます。

SumIf基準範囲から始まり、基準(単一セル)、合計される範囲(マルチセル範囲)の順になります。

それに応じて引数の順序を入れ替えるか、他の関数(SumIfではないSumIfs)を使用して修正します

于 2013-03-20T09:32:02.953 に答える