본문 바로가기
지난 게시글

[엑셀] VBA 셀 끝까지 선택하기, Cells(Rows.Count, "A")

by yyDandy 2024. 1. 7.
반응형

안녕하세요. yyDandy입니다. 사무실 칼퇴보장 알잘딱깔센 엑셀 활용법! 

 


Cells 이해

오늘은 Cells(Rows.Count, "A")에 대해 알려드릴게요. VBA를 사용할 때 가장 중요한 것은 영역 선택이죠. 그래서 Cells을 많이 쓰는데 보통 1개를 선택할 때 씁니다. 그런데 이런 생각들 많이 하셨을거에요. 1부터 끝까지 선택하는 방법은 없을까? 아니면 데이터가 있는 마지막 행까지만 선택하고 싶은데?, 오늘은 이 방법에 대해 알려드릴게요. 가장 중요한 것은 Cells에 대해 이해하는 것인데요. Cells은 흔히 좌표로 표현할 수 있어요. 중학교 수학시간 때 배운 2차함수를 생각하면 편한데요. 앞이 행이고, 뒤가 열이에요. 여기서 열을 2가 아닌 A, B로도 표현할 수 있어요.

 

 

Rows.Count

그렇다면 Rows.Count는 무엇일까요? 이것은 바로 제일 끝을 말하는 것인데요. VBA를 켜서 Cells(Rows.Count, "A") = 1이라고 입력해보면 1048576 행에 1이라는 숫자가 기록된 것을 볼 수 있어요. Cells(Rows.Count, "A") = Cells(1048576, 1) 이라고 볼 수 있겠네요. 

 

 

 

그런데 우리가 원하는 값은 이게 끝에 입력이 되는 것이 아니라, 데이터가 끝나는 지점에서 만나서 멈추는 것을 원하는 것이죠. 그렇다면 추가적으로 할 일이 있는데요. 바로 끝을 정해주는 것입니다. 이것은 End로 할 수 있어요. End는 크게 4가지로 활용할 수 있습니다. 1은 =xlToLEft 좌측이고 2는 우측, 3은 위, 4는 아래입니다. 아래 사진을 보면 더쉽게 이해할 수 있어요. 이 기능은 엑셀에서는 컨트롤 화살표인데요. 예를 들어 컨트롤 화살표 3을 하게 되면 위치에서 위쪽에서 가장 가까운 데이터셀이 클릭됩니다. 그 기능인것이죠.

 

 

그러면 Cells(Rows.Count, "A").End(3) = 1 을 VBA에 입력해보세요. 그러면 데이터가 입력된 셀로 올라가서 그 셀의 값이 1로 바뀌는 것을 볼 수 있습니다. 그런데 이미 입력된 셀의 데이터가 아닌, 바로 그 아래 셀에 데이터를 입력하는 것을 원한다면 추가적으로 하나 더 필요하겠죠?

 

반응형

이 때 입력하는 것은 Cells(Rows.Count, "A").End(3)(2) 인데요. (2)라는 것은 전체 데이터의 마지막행 바로 아래행으로 이동하는 표현이에요. 상대좌표의 개념이 적용되는데요. 예를 들어 Cells(Rows.Count, "a").End(3).Cells(1,1)이라고 하면 이동 후 자신을 가리키는 표현이겠죠. 여기서 앞은 행이라고 했으니, Cells(2,1)이라고 하면 한칸 바로 아래 행을 표현할 수 있어요. 이러한 방식으로 열도 바꿀 수 있습니다. 이를 약식으로 표현해서 (2)로만 표현할 수도 있어요. 그게 바로 End(3)(2) 입니다.

 

 

제가 (4,1) 지점에 2라는 숫자를 적었고, 위의 함수를 실행시켰는데요. 그러니까 바로 아래 즉, (5,1) 지점에 yyDandy라는 문구가 적힌 것을 확인할 수 있어요. 그렇다면 마지막으로 정리하면 Cells(Rows.Count, "A").End(3)(2) 라고 좌표를 입력한다면 입력한 데이터셀 바로 아래를 클릭할 수 있네요! 


더 많은 글을 보고 싶다면 아래 링크를 눌러주세요! 

https://yydandy.tistory.com/category/%EC%B7%A8%EB%AF%B8/%EC%97%91%EC%85%80

 

'취미/엑셀' 카테고리의 글 목록

일상, 맛집, 공부 등 내 삶을 기록해보자.

yydandy.tistory.com

 

반응형