저는 고객이 1 년마다 구매 한 파운드를 합산하는 Excel vba 서브 루틴을 작성하고 있지만 어떤 이유로 서브 루틴이 실패합니다. 그것은 B
열의 모든 고객 이름을 인쇄하지만 2011 년에는 그 행에 모두 0
을 인쇄하고 2012, 2013 및 2014에 대해서는 첫 번째 열에 0
을 인쇄하고 그 내용을 인쇄합니다.vba 코드가 합계 값을 제공하지 않습니다.
Private Sub lbsPerCustPerYear_Click()
Dim i As Integer
Dim Cust As Range
Dim Cust2 As Range
Dim Total2011 As Long
Dim Total2012 As Long
Dim Total2013 As Long
Dim Total2014 As Long
Dim Output As Range
Dim OutputY2011 As Range
Dim OutputY2012 As Range
Dim OutputY2013 As Range
Dim OutputY2014 As Range
Dim CustLbs As Range
Dim Cust2Lbs As Range
Dim YearD As Range
Total = 0
Set Cust = Range("C6")
Set Cust2 = Range("C7")
Set CustLbs = Range("Q6")
Set Cust2Lbs = Range("Q7")
Set Output = Sheets("Sheet10").Cells(2, 2)
Set OutputY2011 = Sheets("Sheet10").Cells(2, 3)
Set OutputY2012 = Sheets("Sheet10").Cells(2, 4)
Set OutputY2013 = Sheets("Sheet10").Cells(2, 5)
Set OutputY2014 = Sheets("Sheet10").Cells(2, 6)
Set YearD = Range("K6")
For i = 0 To 14750
If IsDate(Sheets("Sheet1").Cells(6 + i, 11)) And IsNumeric(Sheets("Sheet1").Cells(6 + i, 17)) Then
If Year(YearD) = "2011" Then
Total2011 = Total2011 + CustLbs.Value
Output.Value = Cust.Value
OutputY2011.Value = Total
ElseIf Year(YearD) = "2012" Then
Total2012 = Total2012 + CustLbs.Value
Output.Value = Cust.Value
OutputY2012.Value = Total
ElseIf Year(YearD) = "2013" Then
Total2013 = Total2013 + CustLbs.Value
Output.Value = Cust.Value
OutputY2013.Value = Total
ElseIf Year(YearD) = "2014" Then
Total2014 = Total2014 + CustLbs.Value
Output.Value = Cust.Value
OutputY2014.Value = Total
End If
If Cust.Value = Cust2.Value Then
Set Cust = Cust.Offset(1, 0)
Set Cust2 = Cust2.Offset(1, 0)
Set CustLbs = CustLbs.Offset(1, 0)
Set Cust2Lbs = Cust2Lbs.Offset(1, 0)
Set YearD = YearD.Offset(1, 0)
Else
Set Cust = Cust.Offset(1, 0)
Set Cust2 = Cust2.Offset(1, 0)
Set CustLbs = CustLbs.Offset(1, 0)
Set Cust2Lbs = Cust2Lbs.Offset(1, 0)
Set Output = Output.Offset(1, 0)
Set OutputY2011 = OutputY2011.Offset(1, 0)
Set OutputY2012 = OutputY2011.Offset(1, 0)
Set OutputY2013 = OutputY2011.Offset(1, 0)
Set OutputY2014 = OutputY2011.Offset(1, 0)
Set YearD = YearD.Offset(1, 0)
Total2011 = 0
Total2012 = 0
Total2013 = 0
Total2014 = 0
End If
Else
Set Cust = Cust.Offset(1, 0)
Set Cust2 = Cust2.Offset(1, 0)
Set CustLbs = CustLbs.Offset(1, 0)
Set Cust2Lbs = Cust2Lbs.Offset(1, 0)
Set YearD = YearD.Offset(1, 0)
End If
Next i
End Sub
왜 이런 일이 발생했는지에 대한 도움은 크게 감사하겠습니다.