我正在编写一个包含 SUMIFS 语句的 Sub。当 yearRange 匹配 gEvent 值并且 yearRange.Offset(0, 2) 匹配 gEvent.Offset(0,2) 值时,如果对某个列 (yearRange.Offset(0,i+3)) 求和,我想要总和。我试过用谷歌搜索这个问题,并检查了 MSDN 网站(描述性不是很好)并且无法使该功能正常工作。我唯一可能的想法是我使用的标准是字符串而不是整数。所以 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
我能得到的任何帮助都会很棒。