Range 개체

CurrentRegion & UsedRange 개체 설명

노만e 2025. 3. 12. 06:33

엑셀 VBA에서 CurrentRegionUsedRange데이터 범위를 자동으로 감지하여 작업할 때 유용합니다.


1. CurrentRegion vs UsedRange 차이점

개체
설명
사용 예시
CurrentRegion
현재 선택된 셀을 포함한 연결된 데이터 범위
표 또는 특정 데이터 블록을 선택할 때
UsedRange
워크시트에서 사용된 모든 셀 범위
워크시트에서 데이터가 입력된 영역 확인

📌 CurrentRegion은 빈 행이나 빈 열을 만나면 멈춤

📌 UsedRange는 워크시트에서 데이터가 포함된 전체 범위를 반환


2. CurrentRegion 사용법

📌 현재 셀의 데이터 블록 선택

Sub 현재_영역_선택()
ActiveCell.CurrentRegion.Select
End Sub

📌 현재 선택된 셀을 포함한 데이터 블록을 자동으로 선택

📌 빈 행 또는 빈 열이 나오면 범위가 멈춤


📌 현재 영역의 데이터 개수 확인

Sub 현재_영역_행열_개수()
Dim rng As Range
Set rng = ActiveCell.CurrentRegion

MsgBox "행 개수: " & rng.Rows.Count & vbNewLine & "열 개수: " & rng.Columns.Count
End Sub

📌 .Rows.Count → 현재 영역의 행 개수

📌 .Columns.Count → 현재 영역의 열 개수


📌 현재 영역에서 특정 값 찾기

Sub 현재_영역_값_찾기()
Dim rng As Range
Dim cell As Range

Set rng = ActiveCell.CurrentRegion ' 현재 영역 설정

For Each cell In rng
If cell.Value = "특정값" Then
MsgBox "값을 찾았습니다! 위치: " & cell.Address
Exit Sub
End If
Next cell

MsgBox "값을 찾을 수 없습니다."
End Sub

📌 현재 영역 내에서 "특정값"을 찾으면 메시지 표시


3. UsedRange 사용법

📌 워크시트에서 사용된 범위 선택

Sub 사용된범위_선택()
ActiveSheet.UsedRange.Select
End Sub

📌 워크시트에서 데이터를 포함한 전체 영역을 선택


📌 사용된 범위의 첫 번째 행 & 마지막 행 찾기

Sub 사용된범위_첫마지막_행()
Dim rng As Range
Dim firstRow As Long, lastRow As Long

Set rng = ActiveSheet.UsedRange

firstRow = rng.Row
lastRow = rng.Rows(rng.Rows.Count).Row

MsgBox "첫 번째 행: " & firstRow & vbNewLine & "마지막 행: " & lastRow
End Sub

📌 .Row → 첫 번째 행 번호

📌 .Rows(rng.Rows.Count).Row → 마지막 행 번호


📌 워크시트에서 사용된 범위를 지우기

Sub 사용된범위_지우기()
ActiveSheet.UsedRange.ClearContents
End Sub

📌 워크시트에서 입력된 값만 삭제 (서식은 유지됨)


📌 워크시트에서 사용된 범위 초기화 (완전 삭제)

Sub 사용된범위_완전삭제()
ActiveSheet.UsedRange.Delete
End Sub

📌 워크시트의 모든 데이터를 삭제하고 서식도 초기화


4. CurrentRegion & UsedRange 비교 예제

📌 현재 영역과 사용된 범위 비교

Sub 현재영역_vs_사용된범위()
Dim rng1 As Range, rng2 As Range
Set rng1 = ActiveCell.CurrentRegion
Set rng2 = ActiveSheet.UsedRange

MsgBox "현재영역: " & rng1.Address & vbNewLine & "사용된 범위: " & rng2.Address
End Sub

📌 현재 셀의 데이터 블록과 시트 전체 사용된 범위를 비교하여 범위를 메시지로 표시


📝 정리

개체
기능
특징
CurrentRegion
현재 셀을 포함한 연속된 데이터 범위 선택
빈 행 또는 빈 열을 만나면 멈춤
UsedRange
워크시트에서 사용된 전체 영역 선택
워크시트의 모든 데이터 포함
.Rows.Count
행 개수 반환
 
.Columns.Count
열 개수 반환
 
.Row
첫 번째 행 번호 반환
 
.ClearContents
값만 삭제 (서식 유지)
 
.Delete
값 + 서식 삭제
 

🔥 CurrentRegion은 특정 데이터 블록을 조작할 때, UsedRange는 시트 전체 데이터를 다룰 때 사용하면 효과적입니다! 🚀