코드수정//
Sub total()
Dim rStart As Range, rTarget As Range, rX As Range
Dim iX As Integer
'A1
Dim avg_A1 As Range
Dim arr_A1() As Double
'A2
Dim avg_A2 As Range
Dim arr_A2() As Double
Application.ScreenUpdating = False
Set rStart = [B7]
Set rTarget = Range(rStart, rStart.End(xlDown))
For Each rX In rTarget
If IsNumeric(rX.Offset(-1)) Then
If rX >= 1 Then
Set avg_A1 = rX.Offset(-1).Resize(2)
Set avg_A2 = avg_A1.Offset(, 1)
'Set avg_A2 = rX.Offset(-1, 1).Resize(2)
ReDim Preserve arr_A1(iX)
ReDim Preserve arr_A2(iX)
arr_A1(iX) = Application.Average(avg_A1) ' 평균를 어레이 변수에 넣기
arr_A2(iX) = Application.Average(avg_A2) '코드에서 누락분
If iX > 0 Then
If arr_A1(iX - 1) < arr_A1(iX) And arr_A2(iX - 1) < arr_A1(iX) Then 'A
rX(, 3) = "A" 'offset함수의 단축형
ElseIf rX.Value > rX(, 2) Then 'B
rX(, 3) = "B"
Else 'C
rX(, 3) = "C"
End If
End If
iX = iX + 1
End If
End If
Next
Application.ScreenUpdating = True
End Sub
첫댓글 vb연산값과 엑셀함수 연산값이 다른 이유는 어딘가 코드작성이 잘못된겁니다.
위 코드를 참고로 순환부분을 꼼꼼히 살피면 답을 얻을 수 있을겁니다.
나중에 시간나면 답글 올릴께요^^
감사합니다^^