본문 바로가기
Range object

[Range 개체] End속성

2023. 7. 9.

소스 범위가 포함된 영역의 끝에 있는 셀을 나타내는 범위 개체를 반환합니다. 위쪽 끝 화살표, 아래쪽 끝 화살표, 왼쪽 끝 화살표 또는 오른쪽 끝 화살표를 누른 것과 동일합니다. 읽기 전용 범위 객체입니다.

--> End키를 누르고 방향표 키를 누르거나 Ctrl키를 누르고 방향표 키를 누른것과 같습니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.End(xlDown).Select
    Selection.End(xlToLeft).Select
    Selection.End(xlToRight).Select
    Selection.End(xlUp).Select
End Sub

매개변수는 Direction 한 개이고 필수입니다.Data type은 XlDirection입니다.

XlDirection 열거형에는 위 그림처럼 4개가 있습니다.

XlDirection enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

내장 상수값은 다음과 같습니다.

그러나 실제로는 다음과 같은 내장 상수값이 많이 사용되는데요.VBA 초기 버전에서 설정된 값이라고 합니다.

xlDown =4
xlToLeft = 1
xlToRight 2
xlUp 3

표로 만들면 다음과 같습니다.

Direction Value Description
xlDown 4 -4121 Down
xlToLeft 1 -4159 To Left
xlToRight 2 -4161 To right
xlUp 3 -4162 Up

자료가 입력된 마지막 행을 선택하는 코드입니다.

Cells(Rows.Count, 1).End(xlUp).Select

A1048576행에서 Ctrl + ↑ 를 누른것과 같습니다.

자료가 입력된 마지막 열을 선택하는 코드입니다.

Cells(1, Columns.Count).End(xlToLeft).Select

XFD1열에서 Ctrl + ←을 누른것과 같습니다.

자료가 입력된 마지막 행 번호입니다.

Cells(Rows.Count, 1).End(xlUp).Row

자료가 입력된 마지막 열 번호입니다.

Cells(1, Columns.Count).End(xlToLeft).Column

End속성을 이용해 복사하는 예제입니다.

Sub CopyWithEndExample()
    Dim ws As Worksheet
    Dim srcRng As Range, destRng As Range
    Dim lastRow As Long
    
    ' 현재 활성화된 워크시트 설정
    Set ws = ActiveSheet
    
    ' A1 셀에서 시작하는 연속된 셀 범위를 찾음
    Set srcRng = ws.Range("A1", ws.Range("A1").End(xlDown))
    
    ' 복사 대상 셀 범위 설정 (여기서는 C1 셀)
    Set destRng = ws.Range("C1")
    
    ' 원본 셀 범위(srcRng)를 복사하고, 대상 셀 범위(destRng)에 붙여 넣음
    srcRng.Copy Destination:=destRng
End Sub

매크로 실행 전

매크로 실행 후