엑셀 표(자동표) 내의 범위 선택
출처 : The VBA Guide To ListObject Excel Tables — TheSpreadsheetGuru
코드 입력 예시
Dim lo As ListObject
Set lo = ActiveSheet.ListObjects(1)
lo.Range.Select
기능 | 코드 | 추가 설명 |
표 변수 선언 | Dim lo As ListObject | list object의 약자인 lo로 지정한 예시임 |
표 할당 | Set lo = ActiveSheet.ListObjects("Table1") | 표이름("표1")이나 표번호(1) |
표 전체 선택 | lo.Range.Select | |
표 머리글 행 | lo.HeaderRowRange.Select | |
표 내용만 선택 | lo.DataBodyRange.Select | 머리글 제외 |
특정 열 선택 | lo.ListColumns(3).Range.Select | 3번 째 열을 선택하는 예시임 |
특정 열 데이터만 선택 | lo.ListColumns(3).DataBodyRange.Select | |
특정 행 선택 | lo.ListRows(4).Range.Select | 4행 선택 예시 |
특정 머리글 선택 | lo.HeaderRowRange(3).Select | |
특정 셀 선택 | lo.DataBodyRange(3, 2).Select | 셀 3행 2열 선택 예시 |
표의 요약 행 선택 | lo.TotalsRowRange.Select | |
표의 마지막 행 선택 |
※ 열 선택 시 개별 입력이 아닌 자동화로 하고 싶다면, 해당 열 머리글의 위치를 Match로 찾을 수 있습니다.
Dim lo As ListObject '표 변수 선언
Dim No_head As Integer ' 열 번호 변수 선언
Dim str_head As String ' 열 이름 변수 선언
Set lo = ActiveSheet.ListObjects(1) '표를 변수에 할당
No_head = Application.Match(str_head, lo.HeaderRowRange, 0) '머리글에서 찾는 열번호 확인
lo.ListColumns(No_head).Range.Select '미리 찾아놓은 열 번호를 이용해 선택
특정 셀 / 범위 선택
기능 | 코드 | 추가 설명 |
하나의 셀을 선택 | Range("A1").Select Cells(1, 1).Select Cells(1, "A").Select |
Cells(행, 열) |
행/열 선택 | Rows(1).Select Columns(1).Select Columns("A").Select Range("A1").EntireColumn.Select Range("A1").EntireRow.Select Range("A1:A2").EntireRow.Select ※ 복수의 행 선택 |
|
특정 범위를 기준으로 선택 | Range("A1").Offset(1, 1).Select | 0인 경우 값 입력을 생략해도 됨 ※ Offset(1), Offset(,1) |
특정 범위 내에서 상대 위치 선택 | Range("A2:C5").Cells(3,2).Select ※ B4 선택 | |
특정 셀을 기준으로 선택 | Range("A1")(1,1).Select ※ (행,열) | Offset과 비슷하나 1이 제자리 |
현재 셀을 기준으로 선택 | ActiveCell.Offset(1).Select | 행 추가 시 행만 추가되고 셀 이동은 하지 않으므로 추가된 셀로 이동 시 사용 가능 |
범위 선택 | Range("A1:B3").Select | |
연속된 범위 선택 | Range("A1", "B3").Select | A1:B3 선택 됨 |
연속 범위 동적 선택 | Range([A1],[B3].End(xlDown)) | 데이터가 계속 추가되는 경우에 활용 |
불연속 범위 선택 | Union(Range("A1"), Range("C1")).Select | Union은 범위를 추가해 줌 |
불연속 범위 중 특정 범위만 선택 | Selection.Areas(1).Select | |
특정 셀/범위 기준으로 범위 선택 | Range("A1").Resize(2, 2) ※ (행,열) | 행/열 수 생략 시 기존 범위의 크기로 유지 |
표 선택 | Range("표1").Select Range("표1[#All]").Select ※ 머리글 까지 |
|
데이터 범위 자동 선택 | Selection.CurrentRegion.Select Range("A1").CurrentRegion.Select |
|
빈 셀만 선택 | Selection.SpecialCells(xlCellTypeBlanks).Select | |
동일 행에서 값이 다른 셀 선택 | Selection.RowDifferences(ActiveCell).Select | |
동일 열에서 값이 다른 셀 선택 | Selection.ColumnDifferences(ActiveCell).Select | |
시트에서 마지막 데이터 셀 선택 | Selection.SpecialCells(xlCellTypeLastCell).Select | |
수식이 있는 셀 선택 | Selection.SpecialCells(xlCellTypeFormulas, 23).Select | 16 : 오류 (xlErrors) 23 : 모두 1 : 숫자만 2 : 텍스트만 4 : 논리값만 |
상수가 있는 셀 선택 | Selection.SpecialCells(xlCellTypeConstants, 23).Select | |
시트의 모든 셀 선택 | Cells.Select | |
스크롤 후 보이는 셀/행/열 선택 | Activewindow.VisibleRange.Cells(1,2).select Activewindow.VisibleRange.Rows(1).select Activewindow.VisibleRange.columns(2).select |
Cells(행, 열) |
데이터 범위 마지막 셀 선택
특정 셀에서 [End 버튼 누른 후 방향키] 또는 [Ctrl + 방향키]와 동일한 작동을 합니다.
기능 | 코드 | 추가 설명 |
맨 오른 쪽 셀 | Range("A1").End(xlToRight).Select ※ End(2) | |
맨 왼쪽 셀 | Cells(1, Columns.Count).End(xlToLeft).Select ※ End(1) | 열 최대 번호(맨 오른열)에서 시작해 왼쪽으로 이동해 만나는 첫 번째 채워진 셀을 선택 |
맨 위 셀 | Cells(Rows.Count, "A").End(xlUp).Select ※ End(3) | 행 최대 번호 위치(맨 아래행)부터 올라가며 만나는 첫 번째 채워진 셀을 선택 |
맨 아래 셀 | Selection.End(xlDown).Select ※ End(4) | |
맨 아래 셀 아래 #1 | Cells(Rows.Count, "A").End(xlUp).Offset(1).Select | 맨 아래 채워진 셀의 바로 아래 셀을 선택 |
맨 아래 셀 아래 #2 | Cells(Rows.Count, "A").End(3)(2).Select |
개체 선택
기능 | 코드 | 추가 설명 |
단일 또는 그룹화 된 개체 | ActiveSheet.Shapes("개체이름").Select ActiveSheet.Shapes.Range(Array(개체번호)).Select |
도형 이름 또는 번호 입력 |
관련 포스팅
2021.06.01 - [MS 오피스 팁/Excel] - [Excel/VBA/일본어] 엑셀로 만든 신박한 단어장 (일본어판)
2021.10.18 - [MS 오피스 팁/Excel] - [Excel/VBA/영어] 엑셀로 만든 신박한 단어장 (영어판)
정보가 마음에 드셨다면 즐겨찾기 또는 구독 그리고 좋아요 부탁드려요!
'MS 오피스 팁 > Excel' 카테고리의 다른 글
[Excel] 기술 표준 리스트 관리 - 최종 버전 확인 및 문서 열람 링크 (0) | 2021.06.28 |
---|---|
[Excel/VBA/일본어] 엑셀로 만든 신박한 단어장 (일본어판) (2) | 2021.06.01 |
[Excel] 엑셀 자동 표 꼭 쓰세요! (사용팁 공개) (0) | 2021.05.15 |
[Excel] 데이터 일치 여부 비교 (초간단!) (0) | 2021.04.18 |
[Excel/VBA] 특정 셀의 값 수정 시 다른 셀로 자동 이동 (0) | 2020.08.19 |
댓글