실무에서 자주 사용되는 시트 이벤트인 'SelectionChange' 와 'Change' 이벤트의 차이점을 간략하게 정리합니다.
- SelectionChange (선택 변경): 마우스 클릭이나 방향키로 셀을 선택하면 활성화
- Change (값 변경): 셀 안에 들어있는 데이터가 실제로 바뀌고 Enter를 쳤을 때
아래 코드는 '1월' 시트 A열의 마지막 셀 행 번호를 반환합니다. 아래 코드에서 "i = Worksheets("1월").Range("A1048576").End(xlUp).Row" 이 동작하는 원리를 간략히 정리합니다.
- Range("A1048576") A열의 맨 마지막 칸으로 이동
- .End(xlUp): 거기서 Ctrl + ↑ (위쪽 화살표) 키 누른효과.가장 마지막 셀 위치로 감
- .Row: 그 행의 값
시트 이벤트의 명령문을 실행할 때에는, 아래 그림과 같이 'EnableEvents' 속성을 설정하는 것이 중요합니다. 'EnableEvents' 속성을 설정하는 이유에 대해 간략히 정리합니다.
Change 이벤트 안에 "셀의 값을 바꿔라"라는 명령이 있으면, 값이 바뀌면서 다시 Change 이벤트가 실행되고, 바뀌고 실행되고 무한 반복