오빠두엑셀 특별 챌린지
[🎁VBA 무료 챌린지] 완주하고, 상품권 받아가세요!🎉
실무에 꼭 필요한 VBA 스킬 완벽 정리! | 기초부터 활용까지, 초보자도 쉽게 배우는 VBA 마스터 클래스!🔥
미션 완성 코드는 영상 댓글의 완성파일을 확인하세요!
① CountIf / SumIf 함수 만들기 사전 미션코드
Function MyCountIf(Rng As Range, Criteria As Variant) As Long '--------------------------------- '■사전미션1 '나만의 CountIF 함수 만들기 'Rng 범위에서 Criteria와 같은 값의 개수를 반환합니다. '--------------------------------- Dim R As Range Dim i As Long '힌트1) Rng의 셀을 하나씩 돌아가며.. 'For Each R In Rng '힌트2) R의 값이 Criteria와 같을 경우, i에서 1을 더합니다. 'If R.Value = Criteria Then.. '힌트3) MyCountIf 함수의 결과값으로 i를 반환합니다. 'MyCountIf = i End Function Function MySumIf(Rng As Range, Criteria As Variant, Sum_Range As Range) As Long '--------------------------------- '■사전미션2 '나만의 SumIF 함수 만들기 'Rng 범위의 값이 Criteria와 같을 경우, Sum_Range의 합계를 반환합니다. '--------------------------------- Dim i As Long Dim Result As Long '힌트1) Rng.Count 속성을 사용하면 조건범위의 개수를 확인할 수 있습니다. '힌트2) i = 1 부터 Rng.Count 까지 돌아가며.. '힌트3) Rng(i)을 사용하면 범위에서 i번째 위치한 값을 반환합니다. '힌트4) Rng에서 i번째 위치한 값이 Criteria와 동일할 경우.. 'If Rng(i) = Criteria Then.. '힌트5) 기존 Result 에 Sum_Range(i) 번째 값을 더합니다. 'Result = Result + Sum_range(i) '힌트3) MySumIF 함수의 결과값으로 Result를 반환합니다. 'MySumIf = Result End Function
② 시트 이벤트 매크로 마스터 코드
Application.ScreenUpdating = False Application.EnableEvents = False If Not Intersect(Target, Range("셀주소")) Is Nothing Then '실행할 명령문 End If Application.ScreenUpdating = True Application.EnableEvents = True