2023. 12. 14. 21:50, 엑셀로 풀어가는 세상
반응형
엑셀 VBA #40 / 행 삭제_개선1 [VBA]
Sub 행삭제_union()
Dim r As Range ' "A-1"값이 포함된 셀의 범위를 담을 변수(방)
Dim i As Long, lR As Long
lR = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lR
If Cells(i, "A") = "A-1" Then
If r Is Nothing Then
Set r = Cells(i, "A").Resize(, 2) 'r이 range타입이므로 set문으로!
Else 'r방에 다른 값이 존재한다면
Set r = Union(r, Cells(i, "A").Resize(, 2))
'r방에 r방의 기존 값과
새로운 값(Cells(i, "A").Resize(, 2))을 r방에 넣어라
End If
End If
Next
If Not r Is Nothing Then r.Delete '만약 r방에 값이 존재하면 r을 지워라.
End Sub
Union메서드를 사용하지 않았을 때는 for문을 통해 한 행씩 삭제> 한 행이 밀려 올라가는 문제 때문에
마지막행를 시작으로 루프를 돌도록 만들었습니다만,
Union 메서드는 조건을 만족하는 영역들을 모아서 한방에 지우므로 "For i = 2 To lR" 사용해도 ok
https://www.youtube.com/watch?v=6jKY3fr01h4&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=40
https://raymond.tistory.com/2257
반응형
'엑셀로 풀어가는 세상' 카테고리의 다른 글
엑셀 VBA #44 / Find메서드_변형2 [VBA] - 역방향으로 찾기 (0) | 2023.12.15 |
---|---|
엑셀 VBA #43 / Find메서드_변형1 [VBA] (0) | 2023.12.15 |
엑셀 VBA #42 / Find메서드_기본 [VBA] (0) | 2023.12.15 |
엑셀 VBA #41 / 행 삭제_개선2 [VBA] - 배열 (0) | 2023.12.15 |
엑셀 VBA #39 / 행삭제_기본 [VBA] (0) | 2023.12.14 |
엑셀 VBA #37 / 행삽입_변형 [VBA] (0) | 2023.12.14 |
엑셀 VBA #36 / 행삽입_기본 [VBA] (0) | 2023.12.14 |
엑셀 VBA #35 / 고급필터 [VBA] (0) | 2023.12.14 |
Comments, Trackbacks