12월 다섯째주|
UNO_WEEKLY |UNO_ZEN
|
...
...
...
...
...
|
x20181231_1058_UNOZEN.
의미있는 문장을 통한 영어 패턴숙달시키기 | UNO_ZEN 윈도우버전 다운로드/설치와 업데이팅...
UNO_WEEKLY|VBA_Basic_Sereis|
복잡해 보이는 수식과 함수, 대신에 VBA로 사용자정의함수
OFFSET,VLOOKUP,MONTH,Find,Offset,Resize
VLOOKUP함수를 처음 사용한 초보는 환호한다
히야..대단하네..일일이 보고 찾지 않아도 함수하나가
알아서 관련된 값을 찾아오네..
그런데 문제는 다양하게 발생한다
매월마다 상품의 단가가 다르게 조정된다고 하면
초보는 깝깝해진다
VLOOKUP함수 하나만 알고 있기때문에 그것은 불가능하다고 생각한다
하지만, 주어진 일자에서 월값을 찾아내는 MONTH함수라던가..
여러개의 참조테이블을 만들고, 조건에 따라서 어떤 참조테이블에 접근할지를
해줄수 있는 OFFSET함수등을 알게 되면,
즉 함수를 하나라도 더 알고 있으면 함수를 적절히 조합하여
주어진 상황의 문제를 모두 풀수 있다
문제를 못푸는것이 아니고, 응용,사용해야할 함수를 모르는 것이다
VBA를 알면, 여러개의 함수를 복잡하게 조합하는 것이
유치해진다..
함수를 여러개 조합하여 복잡하게 구성한 수식은 나중에 분석하기도 귀찮고
사용자가 잘못 건들어서 엉뚱한 값을 만들기도 한다
VBA로 사용자정의함수(User Defined function)를 만들어서
사용하면 수식의 로직도 남들이 볼수 없고
사용하기 간단해진다
x20181231_1058_UserDefinedFunction.
UNO_WEEKLY|VBA_Advanced-
콤보상자의 값에 따라서 목록상자에 참조테이블을 만들어 넣기
AddItem,List,ListIndex,Application.Goto,SetFocus,ListBox
콤보상자를 선택하면
선택된 값에 따라서 관련 목록상자를 채워준다
목록상자에 단일 값을 채울때는 AddItem으로 하나의 값을
추가 해나가지만, 테이블형식의 목록상자, 즉 하나의 행에 여러개의 값을
채워넣을때는 목록테이블이나, 콤보상자의 테이블은
배열형식이라는 점을 기억하시면 된다
워크시트의 범위와 같다고 생각하시면 된다
그런식으로 고객콤보상자는 고객의 이전거래내역 테이블을 목록상자에 채워주고
상품콤보상자는 해당상품의 거래내역 테이블을 채워주는 작업을 통하여
콤보상자와 목록상자를 잘 활용함을 숙달시키자
목록상자를 채워넣은후
목록상자의 행을 선택하면 후속작업이 진행되게 하자
고객목록상자의 행을 선택하면 해당 고객의 거래내역의 행에
해당되는 워크시트의 행으로 선택하도록 하여 사용자가 시각적으로
워크시트상에서 볼수 있게 하고
상품목록상자의 행을 선택하면 새로운 정보를 입력하기 위한
단가와 수량을 참고로 텍스트콘트롤에 값이 옮겨지게 하면 편리할 것이다
x20181231_1058_UserFormReferenceTableUsingListBox.