컴퓨터 공부/엑셀 & VBA
[엑셀vba] 시트의 마지막 데이터 위치를 알아내보자
도 박사
2020. 12. 2. 22:09
반응형
시트의 마지막 데이터(행 또는 열)가 몇번째 셀에 있는지 알고싶다. 쉽게 알아내보자.
1. 테스트 환경 구축
위 그림에서 셀 (10,"A"), (7,"C"), (4,"E"), (2,"H") 네 곳에 '마지막'이라는 글자를 입력하였다. 이 글자들을 활용해 위치를 찾아내보자.
2. vba 코드
1 2 3 4 5 6 7 8 9 | Sub 마지막_위치_알아내기() Dim LastRow As Integer Dim LastCol As Integer LastRow = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row LastCol = Sheets(1).Cells(2, Columns.Count).End(xlToLeft).Column End Sub | cs |
육안으로 봤을 때 A열의 마지막 데이터는 10번째 칸이고, 2행의 마지막 데이터는 8번째(H) 칸에 있음을 확인 할 수 있다. 위 코드를 실행했을 때 LastRow에는 10, LastCol에는 8의 값이 들어가면 정상적으로 마지막 데이터의 위치를 찾는다고 볼 수 있다.
코드를 실행하면 원했던 결과값을 얻을 수 있다. 만약 A열 외 다른 열의 마지막 위치를 알고 싶다면, A대신 다른 문자를 쓰면된다. 그리고 꼭 문자가 아니더라도 숫자로도 인식된다. 나는 매번 행열이 헷갈리기 때문에 아직도 문자를 이용하고 있다.
행도 마찬가지로 다른 행의 마지막 위치를 알고 싶다면 다른 숫자를 입력하면 쉽게 알아낼 수 있다.
이 것말고도 다른 방법들이 있겠지만 엑셀vba를 시작하고 쭈욱 이것만 쓰다보니 습관처럼 요녀석을 쓰게되었다.
1 2 3 4 5 6 7 8 9 | Sub 마지막_위치_알아내기() Dim LastRow As Integer Dim LastCol As Integer LastRow = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row LastCol = Sheets(1).Cells(2, Columns.Count).End(xlToLeft).Column End Sub | cs |
위 코드는 아무런 데이터 없는 행열에서 마지막 위치는 어떤값이 나올까? 궁금했다. 실행해보자.
데이터가 없는 구역에서는 1이란 값을 뱉어냈다. 궁금증 해결!
반응형