2016-08-23 4 views
1

조건에 따라 VBA 코드를 작성해야합니다.- 주문의 열 D, 열 F, 열 P 및 열 P = 단위가 동일한 값을 갖는 경우 열 Q; 열은 P = 양은 다음 열 S.VBA 조건에 따라 행의 값 합계

Dim lastrow1 As Long 
Dim startrow As Long 
Dim Cumulative As Variant 
Dim y As Long 

With Wb2.Worksheets.Item(1) 
    lastrow1 = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
    Cumulative = 0 
    startrow = 4 'Row where your data starts + 1, so row 3 + 1 in this case 

    For y = startrow To lastrow1 
     If Range("P" & y - 1).Value = "Unit" Then 
      Cumulative = Cumulative + Range("Q" & y - 1).Value 
      If Range("F" & y).Value = Range("F" & y - 1).Value And Range("D" & y).Value = Range("D" & y - 1).Value And Range("P" & y).Value = Range("P" & y - 1).Value Then 
       Range("Q" & y - 1 & .Rows.Count).End(xlUp).Value = Cumulative 
       Cumulative = 0 
      End If 
     ElseIf Range("P" & y - 1).Value = "Amount" Then 
       Cumulative = Cumulative + Range("S" & y - 1).Value 
      If Range("F" & y).Value = Range("F" & y - 1).Value And Range("D" & y).Value = Range("D" & y - 1).Value And Range("P" & y).Value = Range("P" & y - 1).Value Then 
       Range("S" & y - 1 & .Rows.Count).End(xlUp).Value = Cumulative 
       Cumulative = 0 
      End If 
     End If 
    Next y 

End With 

값을 요약하지만, 코드가 작동하지 않는 경우, I 선 Range("S" & y - 1 & .Rows.Count).End(xlUp).Value = Cumulative의 범위 개체 오류 1004 얻었다.

내 코드의 문제는 어디에 있습니까?

+0

? 너는 어떤 범위를 찾고 있니? –

+1

실패했을 때'Range' 인수를 검사하십시오. –

+1

VBA를 사용하지 않고도이 모든 작업을 수식을 사용하여 수행 할 수 있습니다. – trincot

답변

1

이 오류 (1004)

변경이 던질 것이다, Range("S" & y - 1 & .Rows.Count).End(xlUp).Value = Cumulative

그것은 예를 S9:1048576에 대한 같은 평가 잘못된 것입니다 : 당신이 달성하려고하는 것을

Range("S" & y - 1 & ":S" & .Rows.Count).End(xlUp).Value = Cumulative

+0

감사합니다. 결과가 잘못되었습니다. – shinpencil

관련 문제