보통 이러한 작업을 하기 위해서는 출력할 영역과 DB영역이 동일한 워크북에 있으면서 Vlookup으로 끌고오는 작업을 하게 된다. 그렇게 되면 수식을 모두 걸어놔야 되고 그 수식을 본인 아닌 누군가가 수정을 할 수 없도록 Undo 코드를 추가로 작성하여야 한다.
오늘 할 코드는 [성명] 을 기준으로 각 데이터를 긁어오는 Change이벤트를 통해서 Vlookup과 같은 작업을 해보도록 하겠다. 물론 여기서도 Vlookup을 이용해도 되지만 DB에 카드번호가 성명보다 왼쪽에 있기 때문에 정상적으로 값을 가져오지 못할 것이다. 해서 Application.match로 행번호를 추출한 후 Cells로 해당값들을 끌고 올 수 있도록 하겠다.
엑셀을 조금만 할 수 있는 분들은 Match함수의 사용법과 같은 방법이기 때문에 이해하는데 크게 어려움이 없을 것이다.
코드진행은 이렇다.
1. Application.Match(찾을값, DB영역, 일치여부)
2. .Cells(Application.Match([c5], .Columns("c"), 0), "b") / 일치값의 행번호와 B컬럼과 결합한 값을 도출해라
'VBA' 카테고리의 다른 글
[VBA] 조건부수식 대체하기 (0) | 2022.05.24 |
---|---|
[vba] 완전수를 구하시오(Feat. VBA공부중) (0) | 2022.05.18 |
[VBA] 모래시계 알고리즘 (0) | 2022.05.18 |
[VBA] 스토쿠를 풀어보자(Feat. 앳마) (0) | 2022.05.16 |
[VBA] 다중 유효성검사 (0) | 2022.05.14 |
댓글