VB(A)/당근쨈 & Chronicle

[& Chronicle] 그룹별 합계 구하기

당근쨈 2017. 5. 7. 10:15
http://cafe.naver.com/excelmaster/138780

G행에 각 그룹별로 숫자가 입력되어 있고
그룹의 맨 아래 빈칸에 그룹별 합계를 입력하는 내용입니다.

이런 경우는 Chronicle님의 해법처럼 G행을 선택하여 빈셀만 선택한 후 자동합계를 구하는 것이 제일 쉬워보입니다. - http://blog.naver.com/asaph16/220998378905

저는 매크로를 이용하여 다음과 같은 흐름으로 코드를 짰습니다.
    1. SpecialCells로 데이터가 있는 영역만 선택합니다.
    2. Areas를 이용하여 그룹별로 순환합니다.
    3. 그룹의 맨 마지막 빈칸에 합계를 출력합니다.

어떻게든 코드는 짰지만 아무래도 엑셀 기본기능을 이용하는 것이 이번 문제에서는 더 편리할 듯 합니다.
Sub Macro()
 
    Dim AllGroup As Range
    Dim SingleGroup As Range
    
    'G행의 숫자가 있는 그룹을 변수로 선언합니다.
    Set AllGroup = Range("G2", Cells(Rows.Count, "G").End(3)).SpecialCells(2)
    
    '각 그룹의 합을 빈칸에 출력합니다.
    For Each SingleGroup In AllGroup.Areas
    
        With SingleGroup
        
            .Cells(.Cells.Count).Offset(1= WorksheetFunction.Sum(.Cells)
    
        End With
    
    Next SingleGroup
    
End Sub
 
cs
QNA용.xls