0

SUMIFS ステートメントが含まれている Sub を書いています。yearRange が gEvent 値と一致し、 yearRange.Offset(0, 2) が gEvent.Offset(0,2) 値と一致する場合に、特定の列 (yearRange.Offset(0,i+3)) を合計する場合の合計が必要です。問題をグーグルで調べてみましたが、MSDN Web サイト (あまり説明的ではありませんでした) を確認しましたが、機能を動作させることができません。私が考えている唯一の考えは、使用している基準が整数ではなく文字列であるということです。したがって、gEvent.Value は「ABCD」で、gEvent.Offset(0,2) は「DEFG」の場合があります。

コードを実行しようとすると、ここで壊れています:

itemPY = Application.WorksheetFunction.SumIfs(yearRange.Offset(0, i + 3), yearRange.Value, "=" & gEvent.Value & """, yearRange.Offset(0, 2), " = " &  gEvent.Offset(0, 2).Value & """)

そして、私が受け取っているエラーは次のとおりです:実行時エラー '424': オブジェクトが必要です

完全な形式のサブは次のとおりです。

Sub CombineData()

Dim eventSheet As Worksheet
Dim yearSheet As Worksheet
Dim yearRange As Range
Dim eventRange As Range
Dim gYear As Range
Dim gEvent As Range
Dim i As Integer
Dim itemCount As Integer
Dim itemPY As Integer

Set eventSheet = ThisWorkbook.Sheets("previousEvent")
Set yearSheet = ThisWorkbook.Sheets("previous12")
Set eventRange = eventSheet.Range("A3", eventSheet.Range("A3").End(xlDown))
Set yearRange = yearSheet.Range("A4", yearSheet.Range("A4").End(xlDown))


    For Each gEvent In eventRange

        i = 0

        gEvent.Offset(0, 16).Value = gEvent.Value
        gEvent.Offset(0, 17).Value = gEvent.Offset(0, 1).Value
        gEvent.Offset(0, 18).Value = gEvent.Offset(0, 2).Value


        itemCount = Application.WorksheetFunction.CountIf(yearRange, gEvent.Value)

        For i = 0 To 11

            itemPY = Application.WorksheetFunction.SumIfs(yearRange.Offset(0, i + 3), yearRange.Value, "=" & gEvent.Value & """, yearRange.Offset(0, 2), " = " &  gEvent.Offset(0, 2).Value & """)

            gEvent.Offset(0, 19 + i).Value = itemPY / Item

         Next i

    Next gEvent


End Sub

私が得ることができるどんな助けも素晴らしいでしょう。

4

1 に答える 1