Jasper Excel
article thumbnail

이번 포스팅에서는 VBA 두 번째 기초 END 속성과 ROWS.COUNT에 대해서 알아보겠습니다.

END 속성은 특정 셀 기준으로 좌 우 상 하로 마지막 셀의 위치를 찾는 속성으로 자동화 파일 제작할 때 가장 많이 쓰이는 속성 중 하나입니다. 추가로 행의 개수를 셀 수 있는 ROWS.COUNT에 대해서도 알아보겠습니다. 특정 셀(열, 행) 기준으로 좌 우 상 하 마지막 셀의 위치를 찾을 때 많이 쓰이는 VBA 코드도 자세히 알아보겠습니다. 

VBA END속성 COUNT속성

 

END 이해하기

Ctrl + END 

엑셀에서 END키는 데이터 테이블에서 마지막 셀의 위치를 찾을때 쓰일 수 있습니다.

 예 ) 컨트롤 END

 

컨트롤 END

END + 방향키

END키를 누르고 방향키를 누르면 연결된 마지막 데이터의 위치로 한번에 이동을 할 수 있습니다.

 

예) END > 방향키 (좌 우 상 하)

END 방향키

 

 

 

END 누르고 방향키를 누르면 항상 연결된 데이터까지만 이동한다는 점 주의하셔야 합니다.

 

 

 

END 연결된 데이터

 

 

위 이미지를 보시면 A1:A10까지만 연결되어 있고 A11에는 데이터가 없음을 확인할 수 있습니다.

그래서 END 누른 후 방향키를 아래로 누르면 A1에서 A10으로만 이동합니다.

 

즉 단축키 END의 속성은 연결된 데이터에서만 마지막 데이터로 이동한다는 점을 유의해야 합니다.

 

 

 

VBA에서 END 속성

END속성

VBA END속성

RANGE("셀"). END을 들어옵니다.

셀에서 마지막셀 이동할 거다라고 보시면 됩니다.

 

위 단축키에서 말씀드린 대로

END를 눌렀으면 어디로 갈지 방향을 잡아야 하죠?

 

END속성 ( 구성

END속성 상 하 좌 우

END에서 괄호를 열면

 

xlDown

xlToLeft

xlToRight

xlUp 

 

총 4개의 방향이 나오죠?

 

여기서 순서대로 아래로, 왼쪽으로, 오른쪽으로 위로입니다. 

다시 말해 방향키 아래로, 왼쪽으로, 오른쪽으로, 위로 이동하겠다라고 이해하시면 됩니다.

 

END(Direction As xldirection)이라고 나와있습니다.

즉, End(방향키로 이동)으로 이해하시면 됩니다.

 

end 속성

 

A1셀을 기준으로 아래 마지막으로 이동하고 선택하겠다.

라는 코드가 완성되었습니다.

End(xlDown).Select

위 GIF에서 보는 거와 같이 A1셀을 기준으로 마지막 셀로 이동하게 되었습니다.

 

이미 눈치 채신분은 그럼 데이터가 중간에 비워져 있을 때 어떻게 해야 할까요?

그때 바로 ROWS.COUNT을 해서 위로 올라오는 코드를 만들어 줘야 합니다.

 

Cells(ROWS.COUNT,

ROWS.COUNT는 

CELLS 개체에서 CELLS(행, 열)에서 행에 위치를 시켜주면 행의 개수를 셉니다.

ROWS.COUNT

엑셀 VBA 매크로 자동화의 기초 중에 기초 코드라 할 수 있는

Cells(Rows.Count, "A"). End(xlUp). Select입니다.

 

Cells(Rows.Count 는 

행의 개수를 세는 거죠.

엑셀 옛날 버전이 아니면 엑셀의 행은 1,048,576개가 있습니다.

Cells(rows.count, "A"). select를 하면

A열의 마지막행을 선택하겠죠.

즉 A1048576 셀로 이동하게 됩니다.

 

하지막 A열에 데이터가 비워져 있고 마지막 셀로 이동해야 할 때는

A열의 행 개수를 센 다음 End.(Xlup)을 하면 되겠죠?

 

row.count,"A").end(xlup).select

위 그림을 보면

 

1. Cells(rows.count, "A") A열에 행 개수를 센다.

 

2.. End(xlUp) 행 개수에서 위로 올라온다.

 

3.. select 그 셀을 선택한다.

 

순서대로 이해하시면 되겠습니다.

Cells(Rows.Count, "A").End(xlUp).Select

 

 

 

Range("A"&rows.count

그럼 CELLS 개체 말고 RANGE 개체로 하는 방법은 다음과 같습니다

 

CELLS 개체와 달리 RANGE 인수로 셀을 바로 받죠?

그럼 & 연산자로 ROWS.COUNT를 묶어 줄 수 있습니다.

 

RANGE("A"&ROWS.COUNT). END(XLUP). SELECT

가 되겠습니다.

 

1. RANGE ("A"&ROWS.COUNT)는 RANGE("A1048567")이 되겠죠?

 

2.. END(XLUP)은 A1048567 셀에서 END키를 누르고 위로 이동하면 A열에 마지막 셀을 가리킵니다.

 

3.. SELECT로 그 셀을 선택합니다.

 

도움 되셨으면 좋아요와 선한 댓글 감사합니다.😊✌

 

 

 

 

 

profile

Jasper Excel

@Jasper's Excel

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!