컴퓨터 공부/엑셀 & 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

 

위 코드는 아무런 데이터 없는 행열에서 마지막 위치는 어떤값이 나올까? 궁금했다. 실행해보자.

빨강구역 - B열 / 초록구역 - 1행
실행 결과

데이터가 없는 구역에서는 1이란 값을 뱉어냈다. 궁금증 해결!


 

반응형