엑셀로 점수별 등급 나누는 문제는 엑셀을 접한 분들은 한번씩 거쳐가는 통과의례 같은 문제이다. 허나 참 중요한 구문인것을 부인할 수도 없기에 엑셀로 작업을 할때 IF에 IF에 IF를 거쳐 의식이 2% 정도만 남아 있을 때까지 해야 IF 지옥에서 빠져나올 수 있다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
오늘 소개할 구문은 SELECT CASE 구문이다.
SELECT CASE 값
CASE IS => 90:RANGE("A2") = "우수"
CASE IS => 80:RANGE("A2") = "보통"
CASE IS => 70:RANGE("A2") = "위험"
CASE ELSE : RANGE("A2") = "낙제"
END SELECT
CASE IS -> 부등호를 동반할때
--------------------------------------------------
SELECT CASE 값
CASE "A":RANGE("A2") = "우수"
CASE "B":RANGE("A2") = "보통"
CASE "C":RANGE("A2") = "위험"
CASE ESLE : RANGE("A2") = "낙제"
END SELECT
CASE -> 부등호없이 값이 나올때
눈으로 보면 크게 위화감 없이 그대로 읽힐 수 있는 구문이나, 이상하게 VBA를 사용하시는 분들의 외면을 받는 코드이다. 개인적으로도 잘 안 쓰기도 하는데 이유는 일단 코드가 너무 1차원적이어서 그런듯 하다. VBA는 대량의 코드를 엑셀로는 물리적으로 힘든 코드들을 매크로라는 기능으로 도움을 받는 것인데 이정도면 그냥 엑셀 함수로 쫘라락 하는게 더 빠를 것 같다. 그래도 모르는 것 보다 사알짝 알고 넘어가는게 정신건강에 이로우니 참고하길 바란다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/023.gif)
'VBA' 카테고리의 다른 글
[VBA_Vlookup] Vlookup은 사랑이다. (0) | 2021.08.11 |
---|---|
[VBA_Dictionary] 데이터 재배치 (0) | 2021.08.10 |
[VBA_Sum vs Consolidate] 병합과 합계구하기 (0) | 2021.08.08 |
[VBA_Consolidate] 부분합 구하기 (0) | 2021.08.07 |
[VBA_Unmerge] 병합셀 해체하고 같은 같으로 채우기 (0) | 2021.08.06 |
댓글