워크시트에서 데이터 범위가 동적으로 변하거나 명확하지 않을 때 어떻게 시작과 종료 셀 위치를 알 수 있을 까요? VBA 에서는 CurrentRegion 과 UsedRange 속성을 상황에 맞춰 사용합니다. CurrentRegion 는 데이터가 연속으로 이어질 때 사용하는 속성입니다. 반면에 UsedRange 는 시트 전체에서 연속적이지 않은 데이터를 모두 선택할 때 사용합니다.
◎ CurrentRegion 사용해서 선택 |
▼ 엑셀 시트에서 연속된 데이터 영역 전체를 한 번에 선택하고 싶을 때 사용하는 단축키가 Ctrl + Shift + * 입니다. 영역에서 아무 셀이나 선택하고 단축키를 클릭해 보세요.
▼ 결과는 다음과 같습니다. 연속된 데이터 영역 전체를 선택했습니다. 이것을 VBA 에서는 CurrentRegion 속성을 이용해서 동일한 동작을 하도록 만들 수 있습니다.
▼ 코드 실행을 위해서 직접 실행 창을 띄웁니다. 단축키 Ctrl + G 나 보기 > 직접 실행 창 메뉴를 선택합니다.
▼ 코드는 다음과 같습니다. Range 함수를 이용해서 데이터 범위에 있는 아무 셀이나 지정합니다. 아래 코드를 직접실행창에 넣고 Enter 를 눌러 실행합니다.
Range("C4").CurrentRegion.Select
▼ 실행 결과는 시트에서 Ctrl + Shift + * 단축키를 누른 것과 같습니다. 이렇게 VBA 코드에서는 연속된 범위를 선택해서 데이터를 가져오고 싶을 때 CurrentRegion 속성을 사용합니다.
▼ 그럼 그림처럼 빈공간이 생겼을 때 CurrentRegion 은 어떻게 동작할까요? 연결되지 않은 영역은 선택하지 못합니다. 이런 경우에는 UsedRange 속성을 사용합니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 시트에서 데이터 셀 영역 구하기 ▶ 엑셀 VBA 영역(Range)을 배열(Array) 로 변경하기 ▶ 엑셀 VBA 영역을 선택했을 때 이벤트 처리하기 ▶ 엑셀 VBA 선택한 영역 재조절 기능 Selection.Resize 함수 사용하기 |
◎ UsedRange 속성 사용하기 |
▼ VBA 에서 UsedRange 속성은 시트에서 사용한 셀 영역 전체를 선택하고 싶을 때 사용합니다. 엑셀 시트에서는 데이터 시작 셀을 지정하고 Ctrl + Shift + End 단축키를 이용해서 사용한 데이터 전체를 선택할 수 있습니다.
▼ 단축키를 실행한 결과는 다음과 같습니다. 빈 공간을 무시하고 사용한 데이터 영역 끝까지 선택되었습니다.
▼ VBA 에서는 UsedRange 속성을 이용해서 동일하게 동작하도록 만들 수 있습니다. 코드는 다음과 같습니다. 아래 코드를 직접실행창에 입력합니다. Sheets 개체에서 사용할 시트를 지정합니다.
Sheets("sheet1").UsedRange.Select
▼ 코드를 실행한 결과 UsedRange 속성으로 지정한 시트에서 사용한 데이터 영역 전체를 선택합니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 시트에서 데이터 셀 영역 구하기 ▶ 엑셀 VBA 영역(Range)을 배열(Array) 로 변경하기 ▶ 엑셀 VBA 영역을 선택했을 때 이벤트 처리하기 ▶ 엑셀 VBA 선택한 영역 재조절 기능 Selection.Resize 함수 사용하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 변수 범위 종류와 설정 방법 (1) | 2023.06.23 |
---|---|
엑셀 VBA 정규식으로 한글, 일어, 한자 추출하기 (3) | 2023.06.22 |
엑셀 VBA Cells 속성의 다양한 사용법 (0) | 2023.06.22 |
엑셀 VBA 마지막 행과 열의 수 찾기 (3) | 2023.06.22 |
엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법 (0) | 2023.06.21 |
엑셀 VBA 함수 실행 중에 오류 처리하는 구문 On Error GoTo 사용하기 (0) | 2023.06.11 |
엑셀 VBA On Error GoTo 반복문에서 에러 거르기 (0) | 2023.06.09 |
엑셀 VBA 배열의 크기를 알아 내기 (0) | 2023.05.29 |