엑셀 VBA #41 / 행 삭제_개선2 [VBA] - 배열
Sub 행삭제_배열_myexr231224()
Dim r As Variant '모든 데이타를 넣을 배열방r....variant적용
Dim a() '배열방r의 데이타 중 'A-1'이외 값을 넣을 배열방a....동적배열적용
Dim i As Long, j As Long, k As Long
'-----------------------------------------------------
'값을 각 배열방에 넣는 과정
r = Range("A1", Cells(Rows.Count, "B").End(xlUp))
ReDim a(1 To UBound(r, 1), 1 To 2)
'동적배열의 영역 확정, a는 2차원이므로 a(1차원,2차원)으로 표시해야함
'1차원 크기는 1부터 r의 행 갯수, 2차원 크기는 1부터 2열까지
For i = 1 To UBound(r, 1) ' UBound(r,1)=UBound(1): r배열의 1차원 위치의 최대값까지
If Cells(i, "A") <> "A-1" Then 'cells(i,"A")의 값이 "A-1"이 아니면
j = j + 1 'j의 초기값이 지정이 없으므로 지정해야하는데,
'j값은 1부터 시작해야 하므로 'j=j+1'코드 설정함
For k = 1 To 2 '열변호를 확장시킬 변수가 필요함
a(j, k) = r(i, k) 'i는 r방에 대응하는 변수이므로,
'i를 a방에 대응할 수 없으니 별도의 변수j를 대입함
Next
End If
Next
'------------------------------------------
'-------------------------------------------
'a방 배열 값을 뿌려주기
Range("A1").CurrentRegion.ClearContents
Range("A1").Resize(UBound(a, 1), 2) = a
'셀A1을 기준으로 "a배열의 1차원 최대값 및 2차원 최대값"만큼 리사이즈한 영역에 a배열값을 넣어준다.
'-------------------------------------------
End Sub
https://www.youtube.com/watch?v=c7rkH3le9cs&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=41
'엑셀로 풀어가는 세상' 카테고리의 다른 글
엑셀 VBA #45 / Find메서드_변형3 [VBA] - 중복표시 (0) | 2023.12.15 |
---|---|
엑셀 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 #40 / 행 삭제_개선1 [VBA] - Union (0) | 2023.12.14 |
엑셀 VBA #39 / 행삭제_기본 [VBA] (0) | 2023.12.14 |
엑셀 VBA #37 / 행삽입_변형 [VBA] (0) | 2023.12.14 |
엑셀 VBA #36 / 행삽입_기본 [VBA] (0) | 2023.12.14 |