엑셀 VBA #36 / 행삽입_기본 [VBA]
1. 목적 : VBA에서 행삽입 기능 숙지
2. Insert
- 구문 : 개체.Insert Shift:=xldown
- 의미 : 정해진 영역에서 기존 행은 아래로 이동시키고 새로운 행 삽입
3. 사용
Dim i As Long, lR As Long
lR = Cells(Rows.Count, "A").End(xlUp).Row ' "A"열의 데이타가 있는 마지막 셀의 행번호
For i = 2 To lR
If i <> lR Then '마지막 행 아래는 빈 행이 있으므로, 마지막 행은 행삽입 불요
Cells(i, "A").EntireRow.Insert shift:=xlDown
End If
Next
오류발생원인 : 하나하나의 행 삽입되면서 기존의 행번호도 같이 변경되기때문!
해결위한 1차 코드
Dim i As Long, lR As Long
lR = Cells(Rows.Count, "A").End(xlUp).Row
For i = lR To 2 Step -1 '마지막 번호부터 시작하면서 행번호를 줄여간다
If i <> lR Then
Cells(i, "A").EntireRow.Insert shift:=xlDown
End If
Next
오류발생......
해결위한 2차 코드
Dim i As Long, lR As Long
lR = Cells(Rows.Count, "A").End(xlUp).Row
For i = lR To 2 Step -1
If i <> lR Then
Cells(i, "A").Offset(1).Insert shift:=xlDown
'작업해야 할 행보다 1칸 아래 행을 선정하여 행 삽입하면 됨
End If
Next
4. 심화
Dim i As Long, lR As Long
lR = Cells(Rows.Count, "A").End(xlUp).Row
For i = lR To 2 Step -1
If i <> lR Then
Cells(i, "A").Offset(1).Resize(, 5).Insert shift:=xlDown
'Resize(,5) : 5열까지만 행삽입토록
End If
Next
https://www.youtube.com/watch?v=Lz1no-0Z7Xk&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=36
'엑셀로 풀어가는 세상' 카테고리의 다른 글
엑셀 VBA #41 / 행 삭제_개선2 [VBA] - 배열 (0) | 2023.12.15 |
---|---|
엑셀 VBA #40 / 행 삭제_개선1 [VBA] - Union (0) | 2023.12.14 |
엑셀 VBA #39 / 행삭제_기본 [VBA] (0) | 2023.12.14 |
엑셀 VBA #37 / 행삽입_변형 [VBA] (0) | 2023.12.14 |
엑셀 VBA #35 / 고급필터 [VBA] (0) | 2023.12.14 |
엑셀 VBA #34 / 사용자정의 함수 [VBA] (0) | 2023.12.14 |
엑셀 VBA #33 / 자동필터_2 [VBA] (0) | 2023.12.14 |
엑셀 VBA #32 / 자동필터_1 [VBA] (0) | 2023.12.14 |