VBA 변화는 Column 위치 쉽게 찾기

⌜ VBA 변화는 Column 위치 쉽게 찾기 ⌟

안녕하세요. 창원에 서식하고 있는 BIG MAN입니다.

EXCEL은 ROW & COLUMN의 연속입니다. 즉, ROWS와 COLUMNS의 정확한 위치를 잘 다루어야 프로시저의 재활용성이 올라가고 다양한 변화에 능동적인 코딩을 할 수가 있더라고요. 오늘 예시가 그런 것들 중 하나입니다. BIG MAN의 경우 업무에 필요한 DATA를 ERP에서 다운로드하여서 사용하는데, 동일한 메뉴에서 DATA를 받아도 유저와 옵션에 따라서 Column의 위치가 변경되는 경우가 있었습니다. 물론 Column의 Head 값은 변화가 없습니다. 이런 경우 Column의 위치를 하드 코딩하게 되면 변경된 DATA 파일에서는 오류를 일으키게 됩니다. 이런 경우 아래 코드를 사용한다면 쉽게 해결할 수가 있죠.

 

주의) 포스팅되는 모든 글은 게시자의 주관적인 관점이 포함되어 있으며, 절대적인 가이드가 아닙니다. 포스팅 글을 참조 후 발생되는 모든 책임은 본인에게 있음을 알려드립니다.

 

아래와 같이 PHONE COLUMN의 DATA가 필요한데, ERP에서 자료를 받은 첫 번째 사람의 PHONE COLUMN은 4번째이고 두 번째 받은 사람의 PHONE COLUMN은 3번째에 PHONE이 있습니다. 이렇게 달라지는 COLUMN의 위치를 자동으로 찾아 주는 코딩을 해 보겠습니다.

Option Explicit

Sub FindColumnPosition()

        'COLUMN의 위치를 담을 변수 선언        
        Dim ColumnPOS As Integer                                          

        'HEAD 행을 선택        
        Range("A1", Range("A1").End(xlToRight)).Select                    

        '선택된 행에서 "PHONE"을 찾고, 해당 COLUMN의 위치를 변수에 반환        
        ColumnPOS = Selection.Find(WHAT:="PHONE").Column                

End Sub

위 코드를 사용하게되면 PHONE의 위치가 어디로 변경되든 쉽게 찾을 수 있습니다. 즉, 입력되는 DATA에 따라 능동적으로 대처가 가능하게 됩니다. 정말 유용한 코드죠. 꼭 알아두시길 바랍니다.

FIND_COLUMN.xlsm
0.03MB

 

👾코로나18👾 항상 조심하시고 건강하세요~ 감사합니다. 👋🏻😃

✅ 참고

2021.06.24 - VBA 실행 속도를 올리는 쉬운 방법 Application.ScreenUpdating = False

2021.06.22 - VBA 배열의 최소 크기와 최대 크기를 알려주는 LBound와 UBound 함수

2021.06.21 - VBA 입력된 값이 숫자인지 확인하는 IsNumeric 함수

 

 

 

728x90