MS 오피스 팁/Excel

[Excel/VBA] 셀과 범위 선택하기 총정리!

노하우저장소 2021. 5. 18.

엑셀 표(자동표) 내의 범위 선택

출처 : 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/영어] 엑셀로 만든 신박한 단어장 (영어판)

정보가 마음에 드셨다면 즐겨찾기 또는 구독 그리고 좋아요 부탁드려요!

 

 
 
 
 

댓글