개요
엑셀에서 표 형태로 데이터 정리 작업을 하던 중에 누락된 행들을 추가해야할 일이 생겼습니다.
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
반응형
'Windows > 유용한 풀그림' 카테고리의 다른 글
[git] Total 이후 push 실패 (client_loop: send disconnect: Broken pipe) (0) | 2023.11.23 |
---|---|
[ffmpeg] 영상 파일에서 이미지 추출하기 (0) | 2023.10.09 |
엑셀에서 VBA 스크립트 실행 설정 (0) | 2023.10.03 |
PC를 새로 설치한 이후에 설치할 공짜 프로그램들(2023)... (0) | 2023.02.01 |
[git] CRLF 변환 설정 (0) | 2022.05.16 |