기초부터 실전까지 VBA 엑셀10 - 마지막 행 얻기(End)
< VBA 엑셀10 - 마지막 행 얻기(End)>
데이터의 마지막 셀로 갈 수 있는 방법중 하나인 End에 대해서 알아보겠습니다.
먼저 프로그래밍을 하기 전에 다음과 같은 엑셀 시트를 준비해야합니다.
A열에서는 첫 번째 줄부터 10번째 줄까지 연속적으로 숫자가 입력되어 있습니다.
B열에서는 첫 번째 줄부터 숫자가 이어지다가 5번째 줄에서 한번 끊기게 됩니다.
이번에는 "A1"셀을 선택한 후에 Ctrl+↓(방향키 아래)를 눌러보시기 바랍니다.
그럼 아래와 같은 그림처럼 "A10" 셀이 선택되어져 있는 모습일거라 생각합니다.
이번에는 "B1"를 선택한 후 똑같이 Ctrl+↓(방향키 아래)을 눌러보시기 바랍니다.
"A1"와 다르게 네 번째 행에서 선택이 멈춥니다.
Ctrl+"방향키"의 기능은 연속적인 데이터가 있을 때 그 방향의 마지막 데이터로 커서를 이동시켜줍니다.
이번에는 이것을 코딩으로 표현할 수 있는 방법에 대해 이야기 해보겠습니다.
(위에서 만든 데이터는 그대로 사용할 예정이니 놔두시면됩니다.)
또한 가능한한 이제부터 VBA에서 셀을 선택할 때는 Cells를 사용하겠습니다.
1. End 사용하기
Cells (1, 1) .End (xlDown)
위에서 했던 Ctrl+↓(방향키 아래)와 같은 기능을 가진 코드입니다.
밑으로 향하는 xlDown 이외에도 다음과 같은 기능을 사용할 수 있습니다.
xlUp : ↑ 위로
xlDown : ↓ 아래로
xlToLeft : ← 왼쪽
xlToRight : → 오른쪽
다음과 같이 코딩을 하면 위에서 했던 것이랑 똑같은 결과를 얻을 수 있습니다.
Sub row1() Dim a As String, b As String a = Cells(1, 1).End(xlDown) Cells(11, 1) = a b = Cells(1, 2).End(xlDown) Cells(11, 2) = b End Sub |
약간 해석을 하자면
① 문자열을 받을 수 있는 변수 a, b를 만듭니다
② "A1"의 마지막 행에 있는 데이터를 a에 저장합니다.
③ "A11"에 저장한 a 데이터를 입력합니다.
④ "B1" 또한 같은 내용을 반복합니다.
<결과>
위에서 했던거 처럼 같은 결과를 얻을 수 있습니다.
2. 마지막 행의 수 얻기 - .Row
마지막으로 그 행의 숫자를 얻을 수 있는 코드를 알려주고 끝내겠습니다.
위에서 배웠던
Cells (1, 1) .End (xlDown)
이거에 .Row를 붙여서
Cells (1, 1) .End (xlDown).Row
라고 하면 끝입니다.
아래와 같이 프로그래밍을 할 경우 결과는 위와 동일하지만
Sub row2() Dim a As String, b As String a = Cells(1, 1).End(xlDown).Row Cells(11, 1) = a End Sub |
여기서 "A11"에 출력되는 "10은 "A10" 셀에 있는 "10"이 아닙니다.
A"10"을 의미하는 10입니다.
즉, 행의 숫자를 얻을 수 있는게
Cells (1, 1) .End (xlDown).Row
입니다.
오늘은 여기까지 하겠습니다!
'IT 관련 지식 > VBA 공부' 카테고리의 다른 글
기초부터 실전까지 VBA 엑셀13 - 조건문 Select Case (0) | 2019.11.02 |
---|---|
기초부터 실전까지 VBA 엑셀12 - 조건문 If ~ ElseIf (0) | 2019.10.31 |
기초부터 실전까지 VBA 엑셀9 - 반복문 Do ~ Loop (1) | 2019.10.24 |
기초부터 실전까지 VBA 엑셀8 - 반복문 For (0) | 2019.10.23 |
기초부터 실전까지 VBA 엑셀5 - 셀 지정법(Cells, Rows, Columns) (0) | 2019.10.22 |