엑셀 VBA #07 / 셀 범위 선택하기_2 [VBA]
목적 : Resize & Offset을 활용하여 플렉시블하게 셀 범위 선택하기
1. Resize
구조 : 기준개체.Resize(행,열)
의미 : 기준개체를 바탕으로 행과 열만큼 영역을 재지정
2. 사용
Dim rng As Range
Set rng =range("A1").CurrentRegion
rng.Resize(2,3).Select
Resize(,3)의 의미는 Resize(0,3)가 아니라~~~
!!!!! rng.Resize(,3) = rng.Resize(rng.Rows.Count,3)
rng.Rows.Count : rng영역의 행의 갯수를 산출
그러면 rng.Resize(3)은 어떤 의미일까........?
rng.Resize(3, 열전체)를 의미한다. 즉 rng.Resize(3,rng.columms.count)이다.
3. 셀 범위가 가변적인 경우, Resize & Offset 활용
제목행을 제외한 데이타 테이블 전체 셀 범위를 선택하기!!!
Dim rng As Range
Dim cn As Long
Set rng =range("A1").CurrentRegion
cn=Cells(1,Columns.Count).End(xlToLeft).Column
'열번호 찾기 : 1행의 데이타 유무와 관계없이 1행의 마지막셀에 가서 열번호를 보여줘.
rng.Offset(1).Resize(rng.Rows.Count-1,cn).Select
'Offset(1) : rng영역에서 행 방향으로 1행 이동 = Offset(1,0)
'rng.Rows.Count-1 : rng영역의 전체 행의 갯수에서 제목행 개수(1)을 빼기
4. 핵심정리
특정 범위 잡을 때, 제목행 빼고, 마지막 열도 계산
cn = Cells(1, Columns.Count).End(xlToLeft).Column
rng.Offset(1, 0).Resize(rng.Rows.Count - 1, cn)
특정열의 마지막 셀 (중간 빈 셀O) 번호 찾기
Cells(4, Columns.Count).End(xlToLeft).Column
특정행의 마지막 셀(중간 빈 셀O) 번호 찾기
Cells(Rows.Count, "A").End(xlUp).Row
엑셀 VBA #03 / 셀 하나 선택하기_2[VBA] - End속성 이용
엑셀 VBA #05 / 셀 하나 선택하기_4 [VBA]-Offset
https://www.youtube.com/watch?v=VN9mj9vrnsw&t=5s
'엑셀로 풀어가는 세상' 카테고리의 다른 글
엑셀 VBA #12 / 셀 범위 선택하기_7 [VBA] - SpecialCell & Areas활용(행 삭제) (0) | 2023.12.12 |
---|---|
엑셀 VBA #11 / 셀 범위 선택하기_6 [VBA] - Areas (0) | 2023.12.12 |
엑셀 VBA #09 / 셀 범위 선택하기_4 [VBA] - SpecialCells (0) | 2023.12.12 |
엑셀 VBA #08 / 셀 범위 선택하기_3 [VBA] - Union (0) | 2023.12.12 |
엑셀 VBA #06 / 셀 범위 선택하기_1 [VBA] (1) | 2023.12.12 |
엑셀 VBA #05 / 셀 하나 선택하기_4 [VBA]-Offset (0) | 2023.12.12 |
엑셀 VBA #04 / 셀 하나 선택하기_3[VBA] - Entire속성 이용 (0) | 2023.12.12 |
엑셀 VBA #03 / 셀 하나 선택하기_2[VBA] - End속성 이용 (0) | 2023.12.12 |