VB(A)

색이 입혀진 셀의 합계 구하기

당근쨈 2016. 10. 24. 11:35

색이 입혀진 셀과 그렇지 않은 셀을 더하는 사용자정의 함수


=colorSum(A2:A5) 처럼 영역만 잡으면 색이 입혀진 셀을

=colorSum(A2:A5,2) 처럼 뒤에 2를 넣으면 색을 입히지 않은 셀을 더한다.





Function colorSum(rnGData As Range, Optional col As Integer = 1As Long
'영역만 잡으면 색 입혀진 셀을 더함
'colorSum(A1:A4,2) 로 하면 색 안 입혀진 영역을 더함
 
    Dim rnG As Range
    Dim tmp As Long
    
    Application.Volatile    '사용자함수 재구동
    
    For Each rnG In rnGData '영역 순환
    
        Select Case col
            Case 1  '색이 입혀진 셀 합계
                If rnG.Interior.Color <> vbWhite Then
                    tmp = tmp + rnG.Value2
                End If
            
            Case 2  '색이 안 입혀진 셀 합계
                If rnG.Interior.Color = vbWhite Then
                    tmp = tmp + rnG.Value2
                End If
        End Select
        
    Next rnG
    
    colorSum = tmp
    
End Function
 
cs

colorSum.xlsm