Skills/Excel VBA

다른 값이 나올때마다 행과 일련번호를 삽입

섬그늘 2008. 11. 13. 14:34

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=F58Bnp3HKRQdqYHoxQEGbQ7uZdb74Ouj

  

Sub 구분행_삽입()

    Dim i As Integer
    Dim icount As Integer
    Dim irow As Integer

 

' 행 삽입
    irow = ActiveSheet.Range("c1").CurrentRegion.Rows.Count '전체 행 수
    For i = irow To 2 Step -1
        If Cells(i, 3) <> Cells(i - 1, 3) Then              '직전행과 데이타가 다르면
            Rows(i).Insert                                  '행 삽입
        End If
    Next i
   
' 일련번호
    icount = 1
    ActiveSheet.UsedRange.Select                            '빈 행 포함한 전체 행 수
    For i = 2 To Selection.Rows.Count
        If Application.CountA(Rows(i - 1)) = 0 Then         '직전행이 빈 행이면
            Cells(i, 1) = icount                            'A열에 일련번호 기입
            icount = icount + 1
        End If
    Next i
   
' 정리
    Rows(2).Delete                                          '2행 삭제
   
End Sub

 

감상/의견 : 행 삽입은 For i=n To 1 Step -1 의 (역순)기법을 쓰지 않으면 안될 겁니다. 근데 일련번호는 반대이지요. 그래서 for next를 한 번만 쓰고는 힘들더군요. 2행에 일련번호 1을 별도 코드 없이 넣기 위해 2행 직전까지 행을 삽입, 나중에 지우는 방식을 사용했습니다. 저도 배우는 처지라...더 간단히 될지도 모르겠네요.

 

(2008.03.25)