[엑셀VBA] 영역선택, 이름관리자를 VBA에서 사용
엑셀VBA에서 영역선택, 이름관리자를 VBA에서 사용1부터 16까지 16행의 값이 들어가 있다고 하자VBA에서 해당 영역을 지정하는 방식을 알아본다. 알고 있는 방법은 크게 3가지로,range로 영역을 지정하는 방법,currentRegion이나 usedrange를 활용하는 방법,워크시트의 이름관리자를 활용하는 방법이다. 대충 영역 내 셀 개수를 세는 프로시저를 작성해보면 아래와 같고, 결과는 모두 16이 나올 것이다. 이때, 셀이 하나 추가가 된다면, 어떻게 될까?셀이 하나 추가되어도 기존 영역을 물고 있다면, 곤란하다고 할 수 있다.3가지 방법 중 동적으로 작동하는 방식은 뭘까? 약간 코드를 수정하고 실행해 보자 영역을 세팅해 놓는 range는 당연히, 그대로 16이고,curren..
2021. 4. 16.
[엑셀VBA] 색칠된 셀의 합계 구하기
색칠된 셀의 합계 구하기특정 조건에 대하여 셀 색을 칠하는 것은 조건부 서식으로 되는데,색이 칠해진 셀에 대하여, 합계를 구하는 방법이 묘연하다. 배열수식으로 간단하게 만들어질 줄 알았는데, VBA를 사용해야하는 것 같다.없으면 만들어야지 뭐.. 방법다들 아는 것이겠지만, VBA 프로시저 중, 일반적으로 사용하는SUB프로시저를 만들기엔 변수가 좀 많다.FUNCTION 프로시저로 UDF를 만들어서 사용하는 게 나을 것 같다. 그래도 뭐가 나을지 모르니, 둘 다 해보자. CASE #1. SUB 프로시저 사용영역을 INPUTBOX로 받아서, 색상을 확인한다.흰색이 아니면, 값을 저장해서, 이후에 해당하는 값을 합산한다.모든 영역에 검사가 끝나면, 최종적으로 합산된 값을 반환한다. 그런데.. 어디다가 반환할..
2021. 4. 9.
[엑셀] 수식에러의 근원. 복사와 자르기, 수식은 어떻게 되나?
엑셀 수식에러의 근원. 복사와 자르기, 수식은 어떻게 되나?수식에서 셀 참조를 할때, 절대참조와 상대참조가 있다는건 다 알고 있는 사실이다.드래그로 자동완성을 할것을, 고려할때는 이를 심각하게 생각하지만,셀이나 열/행을 통째로 옮길 때는 잘 고려하지 않게 된다. 아주 간단하지만, 모든실수의 근원, 예상은 가능하지만, 매번 혼란스러운 것.고수들도 가끔 잊을 때가 있을 그것. 셀 또는 열/행을 통째로 옮길 때, 수식이 어찌 되는지 간단한 샘플로 보자. N1과 N2로 구성된 표가 있다.옆에는 N1열의 합계를 내는 수식이 있다고 하자.물론 상대참조로 되어있다. N1열의 합은 39이다.옆에 셀에 이 수식이 들어있는 셀을 카피/페이스트로 복사를 할 예정이다. 열이 이동했으니, 수식도 이동하게 되서, N..
2020. 11. 20.