본문 바로가기
VBA

[VBA] GetObject + Application.Match (feat. Vlookup 대체)

by 일등미노왕국 2022. 5. 18.

보통 이러한 작업을 하기 위해서는 출력할 영역과 DB영역이 동일한 워크북에 있으면서 Vlookup으로 끌고오는 작업을 하게 된다. 그렇게 되면 수식을 모두 걸어놔야 되고 그 수식을 본인 아닌 누군가가 수정을 할 수 없도록 Undo 코드를 추가로 작성하여야 한다.

 

오늘 할 코드는 [성명] 을 기준으로 각 데이터를 긁어오는 Change이벤트를 통해서 Vlookup과 같은 작업을 해보도록 하겠다. 물론 여기서도 Vlookup을 이용해도 되지만 DB에 카드번호가 성명보다 왼쪽에 있기 때문에 정상적으로 값을 가져오지 못할 것이다. 해서 Application.match로 행번호를 추출한 후 Cells로 해당값들을 끌고 올 수 있도록 하겠다.

 

Input Data 영역

 

엑셀을 조금만 할 수 있는 분들은 Match함수의 사용법과 같은 방법이기 때문에 이해하는데 크게 어려움이 없을 것이다.

코드진행은 이렇다.

 

1.        Application.Match(찾을값, DB영역, 일치여부)

2. .Cells(Application.Match([c5], .Columns("c"), 0), "b")  / 일치값의 행번호와 B컬럼과 결합한 값을 도출해라

 

 

Match연습.zip
0.04MB

댓글