Range 개체

End 키워드 및 End 속성

노만e 2025. 3. 11. 06:11

엑셀 VBA에서 End는 두 가지 의미로 사용됩니다.

  1. VBA 코드 실행을 종료하는 End 키워드
  2. 셀 범위를 찾을 때 사용하는 End 속성 (Range.End)

1. VBA 코드 종료 (End 키워드)

📌 코드 강제 종료

Sub 코드_강제_종료()
MsgBox "이 메시지가 보이고 나면 코드가 종료됩니다."
End ' 코드 실행 강제 종료
MsgBox "이 메시지는 표시되지 않습니다."
End Sub

📌 End를 실행하면 즉시 코드 실행이 중지되며, 이후의 코드가 실행되지 않음


📌 변수 값 초기화 후 종료

Sub 변수초기화_후_종료()
Dim i As Integer
i = 10
MsgBox "i의 값: " & i
End ' 코드 종료
i = 20 ' 실행되지 않음
End Sub

📌 End가 실행되면 모든 변수 값이 초기화됨 (메모리에서 제거됨)


2. 셀 범위 찾기 (Range.End 속성)

End 속성은 엑셀에서 Ctrl + 방향키를 누르는 것과 같은 동작을 수행합니다.

즉, 특정 셀에서 시작하여 데이터가 있는 마지막 셀을 찾거나 빈 셀을 찾는 데 사용됩니다.


📌 아래 방향으로 마지막 데이터가 있는 셀 찾기

Sub 마지막_행_찾기()
Dim lastRow As Long
lastRow = Range("A1").End(xlDown).Row ' A1에서 아래로 이동하여 마지막 데이터 행 찾기
MsgBox "마지막 데이터가 있는 행: " & lastRow
End Sub

📌 Range("A1").End(xlDown) → A1에서 아래 방향으로 이동하며 마지막 데이터가 있는 행 찾기

📌 xlDown → 아래 방향 (Ctrl + ↓)


📌 오른쪽 방향으로 마지막 데이터가 있는 셀 찾기

Sub 마지막_열_찾기()
Dim lastCol As Long
lastCol = Range("A1").End(xlToRight).Column ' A1에서 오른쪽으로 이동하여 마지막 데이터 열 찾기
MsgBox "마지막 데이터가 있는 열: " & lastCol
End Sub

📌 Range("A1").End(xlToRight) → A1에서 오른쪽 방향으로 이동하여 마지막 데이터가 있는 열 찾기

📌 xlToRight → 오른쪽 방향 (Ctrl + →)


📌 위쪽 방향으로 데이터가 있는 첫 번째 셀 찾기

Sub 첫번째_데이터_위로_찾기()
Dim firstRow As Long
firstRow = Range("A100").End(xlUp).Row ' A100에서 위로 이동하여 첫 번째 데이터 행 찾기
MsgBox "첫 번째 데이터가 있는 행: " & firstRow
End Sub

📌 Range("A100").End(xlUp) → A100에서 위 방향으로 이동하여 첫 번째 데이터 행 찾기

📌 xlUp → 위쪽 방향 (Ctrl + ↑)


📌 왼쪽 방향으로 데이터가 있는 첫 번째 셀 찾기

Sub 첫번째_데이터_왼쪽_찾기()
Dim firstCol As Long
firstCol = Range("Z1").End(xlToLeft).Column ' Z1에서 왼쪽으로 이동하여 첫 번째 데이터 열 찾기
MsgBox "첫 번째 데이터가 있는 열: " & firstCol
End Sub

📌 Range("Z1").End(xlToLeft) → Z1에서 왼쪽 방향으로 이동하여 첫 번째 데이터 열 찾기

📌 xlToLeft → 왼쪽 방향 (Ctrl + ←)


3. End 속성과 Cells를 조합하여 동적 범위 찾기

📌 데이터가 있는 마지막 행 전체 선택

Sub 마지막_행_전체_선택()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' A열의 마지막 데이터 행 찾기
Range("A" & lastRow).EntireRow.Select ' 해당 행 전체 선택
End Sub

 

📌 Cells(Rows.Count, 1).End(xlUp).Row → A열에서 마지막 데이터가 있는 행 찾기


📌 데이터가 있는 마지막 열 전체 선택

Sub 마지막_열_전체_선택()
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column ' 1행의 마지막 데이터 열 찾기
Columns(lastCol).Select ' 해당 열 전체 선택
End Sub

📌 Cells(1, Columns.Count).End(xlToLeft).Column → 1행에서 마지막 데이터가 있는 열 찾기


📌 데이터가 있는 마지막 셀 범위 선택

Sub 마지막_셀_범위_선택()
Dim lastRow As Long, lastCol As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1", Cells(lastRow, lastCol)).Select
End Sub

📌 A1에서 시작하여 데이터가 있는 마지막 행과 마지막 열까지의 범위를 자동으로 선택


4. 데이터 삽입을 위한 End 활용

📌 마지막 행 아래에 새 데이터 추가

Sub 마지막_행_아래_데이터추가()
Dim lastRow As Long
lastRow = Range("A1").End(xlDown).Row + 1 ' 마지막 행 다음 행 찾기
Range("A" & lastRow).Value = "새로운 데이터"
End Sub

📌 A열의 마지막 데이터 아래에 "새로운 데이터" 입력


📌 마지막 열 오른쪽에 새 데이터 추가

Sub 마지막_열_오른쪽_데이터추가()
Dim lastCol As Long
lastCol = Range("A1").End(xlToRight).Column + 1 ' 마지막 열 다음 열 찾기
Cells(1, lastCol).Value = "새로운 데이터"
End Sub

📌 마지막 데이터가 있는 열의 오른쪽에 "새로운 데이터" 입력


📝 정리

기능
VBA 코드
코드 강제 종료
End
아래 방향으로 마지막 데이터가 있는 행 찾기
Range("A1").End(xlDown).Row
오른쪽 방향으로 마지막 데이터가 있는 열 찾기
Range("A1").End(xlToRight).Column
위쪽 방향으로 첫 번째 데이터 찾기
Range("A100").End(xlUp).Row
왼쪽 방향으로 첫 번째 데이터 찾기
Range("Z1").End(xlToLeft).Column
마지막 행 전체 선택
Range("A" & lastRow).EntireRow.Select
마지막 열 전체 선택
Columns(lastCol).Select
데이터가 있는 마지막 범위 선택
Range("A1", Cells(lastRow, lastCol)).Select
마지막 행 아래 새 데이터 입력
Range("A" & lastRow).Value = "새로운 데이터"
마지막 열 오른쪽에 새 데이터 입력
Cells(1, lastCol).Value = "새로운 데이터"

🔥 VBA의 End 키워드와 End 속성을 활용하면 자동화된 데이터 조작과 빠른 탐색이 가능합니다! 🚀