2014-02-24 3 views
0

SUMIFS 문이 포함 된 Sub를 작성했습니다. yearRange가 gEvent Value와 일치하고 yearRange.Offset (0, 2)가 gEvent.Offset (0,2) Value와 일치 할 때 특정 열 (yearRange.Offset (0, i + 3))을 합계하는 경우 합계를 원합니다. 문제를 검색하고 MSDN 웹 사이트 (매우 설명 적이 지 않음)를 확인 했으므로 작동하는 기능을 얻을 수 없습니다. 가능한 유일한 아이디어는 내가 사용하고있는 기준이 정수가 아닌 문자열이라는 것입니다. 따라서 gEvent.Value는 "ABCD"이고 gEvent.Offset (0,2)는 "DEFG"일 수 있습니다.여러 문자열 기준을 사용하는 VBA의 SUMIFS

나는 여기에 위반되는 코드를 실행하려고하면 :

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 

내가 얻을 수있는 도움이된다면 도움이 될 것입니다.

+0

내가가는 오전 문자열의 최종 결과는 "= ABCD"여기서 gEvent.Value = ABCD – William

+1

다음과 같이하십시오. itemPY = Application.WorksheetFunction.SumIfs (yearRange.Offset (0, i + 3), yearRange, gEvent.Value & "" ", yearRange.Offset 0,2), gEvent.Offset (0, 2) .Value & "" "") ' –

+1

감사합니다. 문자열 연결의 따옴표 문제입니까? – William

답변

1

인용 모든 필요 없음 :. 나는 그에게 "="& gEvent.Value & "를" "조정,하지만 여전히 파괴되어

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

Tim과 simoco, 둘 다 감사합니다! – William