본문 바로가기
엑셀/VBA

[엑셀]VBA입문(6)-끝열, 끝행 찾기

by 이지블로그 2020. 9. 10.

이전 글

[엑셀] VBA입문(0)-VBA란?

[엑셀] VBA입문(1)-VBA실행법

[엑셀] VBA입문(2)-변수

[엑셀] VBA입문(3)-반복문

[엑셀] VBA입문(4)-반복문 2

[엑셀] VBA입문(5)-조건문 IF

 

 

 

 


오늘은 값이 있는 셀의 끝열 혹은 끝행을 자동으로 인식하는 법에 대해 알아보겠습니다.

 

그럼 먼저 A1:A20에 1부터100까지의 랜덤한 수를 생성 했습니다.

 

 

 

 

 

그럼 여기서 값이 50을 넘어가는 셀의 색이 변하게 만드는 For문을 만들어 봅시다.

 

Sub test()
    Dim i As Long
    For i = 1 To 20
        If Cells(i, 1) > 50 Then
            Cells(i, 1).Interior.ColorIndex = 3
        End If
    Next
End Sub

이렇게 쓰면 1 부터 20까지 i가 반복하면서 

 

 

 

 

이렇게 됩니다. 그런데 여기서 문제점이 A20 밑으로 다른 값이 들어와도 그 값에 대해서는 인식을 못한다는 것이죠

 

 

 

 

이렇게 20열 까지만 인식하고 그 밑으로는 인식하지 못함니다.

그래서 i의 끝수를 30으로 늘려주면 되지만

이번에는 그렇게하지 말고 자동으로 값이 있는 셀의 끝을 찾아서 동작하게 해봅시다.

 

endrow = Range("a1048576").End(xlUp).Row

이것을 이용할건데 해석해 보자면 A1048576셀에서 부터 올라오면서 값이 있는 첫번째 셀을 찾아라 라는 것입니다.

A1048576셀이 A열의 마지막 행이죠 굳이 이렇게 적지 않고 대충 큰 숫자를 적어주면 됩니다.

그럼 이것을 이용해서 코드를 다시작성하면

Sub test()
    Dim i As Long
    Dim endrow As Long
    endrow = Range("a1048576").End(xlUp).Row
    For i = 1 To endrow
        If Cells(i, 1) > 50 Then
           Cells(i, 1).Interior.ColorIndex = 3
        End If
    Next
End Sub

 

 

 

 

 

잘 적용된 것을 볼 수 있습니다.

End(xlUp).Row 대신 End(xlToLeft).Column을 이용해 열의 끝을 찾을 수 있습니다.

그럼 다음시간에는 VBA로 복사, 붙여넣기 하는 법에 대해 알아보도록 하죠 그럼 이만

반응형