안녕하세요. 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
'지난 게시글' 카테고리의 다른 글
[엑셀] VBA 특정한 셀, 범위 선택하는 법 ActiveSheet.UsedRange (0) | 2024.01.07 |
---|---|
[엑셀] VBA 데이터 있는 열만 선택하기, Columns("A").SpecialCells(2) (2) | 2024.01.07 |
진주 베이글 맛집, 카페까지 즐길 수 있는 '타타스 베이글' 대파치즈! (3) | 2024.01.06 |
갤럭시탭 S9 FE 출시! 구매 혜택과 받는 방법은? + 45만원 구매 후기 (1) | 2024.01.06 |
우유에 적힌 1A는 무슨 뜻일까? 우유 고르는 꿀팁! (2) | 2024.01.04 |