Windows/유용한 풀그림

엑셀 VB 스크립트로 빈 행 추가하기

채윤아빠 2023. 10. 5. 22:39

개요

엑셀에서 표 형태로 데이터 정리 작업을 하던 중에 누락된 행들을 추가해야할 일이 생겼습니다.
100개 미만이면 그냥 일일이 행을 추가하고 말겠는데, 1,000행이 넘어가니 엄두가 나지 않았습니다.

엑셀에서 VB 스크립트를 이용하면 간단하게 처리할 수 있습니다.


반복적인 빈 줄 추가하기

이전 글인 엑셀에서 VBA 스크립트를 실행할 수 있도록 설정하는 방법을 통하여 "개발 도구" 밴드를 활성화 후, Alt + F11로 VBA 편집기를 엽니다.

Sub InsertRowsBetween()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        Rows(i).Insert Shift:=xlDown
    Next i
End Sub


위 VBA 스크립트를 입력 후, 실행하면 A 행을 기준으로 자동으로 1줄마다 빈 줄이 추가됩니다.

각 코드별로 살펴 보겠습니다.

  • Dim i As Long
    • 변수 i를 Long 데이터 타입으로 선언합니다. Long은 정수형 데이터 타입으로, 큰 숫자를 처리할 수 있습니다.
    • 이 변수는 반복문에서 사용됩니다.
  • For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    • For 반복문은 i를 초기화하고, 각 반복마다 i의 값을 감소시키며 실행됩니다.
  • Cells(Rows.Count, 1).End(xlUp).Row:
    • Cells(Rows.Count, 1)은 A열의 마지막 셀을 가리킵니다.
    • .End(xlUp)는 마지막 셀에서 위로 이동하며 데이터가 있는 첫 번째 셀을 찾습니다.
    • .Row는 해당 셀의 행 번호를 반환합니다.
    • To 2: 반복문이 2행까지 실행됩니다.
    • Step -1: 반복문이 역순으로 실행되며, i가 1씩 감소합니다.
  • Rows(i).Insert Shift:=xlDown
    • Rows(i)는 현재 반복에서 선택된 행을 가리킵니다.
    • .Insert Shift:=xlDown: 선택된 행에 새로운 행을 삽입하고, 기존 행을 아래로 이동시킵니다.
  • Next i
    • 반복문의 끝을 나타내며, i의 값을 감소시킨 후 다음 반복을 실행합니다.

맺는말

위 스크립트는 데이터가 있는 마지막 행부터 시작하여 각 행 사이에 빈 행을 삽입합니다.
"Step -1"을 사용하여 역순으로 반복함으로써 행 번호가 변경되는 문제를 방지합니다.

 

위와 같이 간단한 스크립트로 엄청난? 반복작업을 한번에 끝낼 수 있었습니다. ^^



728x90
반응형