나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 허일찬 (windsg)

추천:  2
파일:     조회:  1501
제목:   VBA 셀 인식 문의 드립니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >>

제가 사원번호를 입력 하면 부서코드, 부서명, 근속년수 등을 VLOOKUP 으로
불러오게 엑셀에 만들어 놓았고,

VLOOKUP으로 불러온 부서코드를 읽어서 피벗테이블 필터를 변경하도록 VBA 문구를 작성 하였는데 일단은 작동을 안 하는데 VLOOKUP을 읽어서 만들어진 부서코드 셀을 엔터 치면 작동을 합니다. 사원번호를 입력시 읽어 오도록 변경해도 되지만 저는 꼭  VLOOKUP 으로 읽어온 부서코드로 피벗테이블이 변경 되도록 하고 싶습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim sField As String, sDV_Address As String

sField = "BO_CD"  ----부서코드 열명-----
sDV_Address = ("$E$4)   -----Vlookup으로 불러온 셀-----

if intersect(Target, Range(sDV_Address)) is Nothing or _
    Target.cells.count > 1 then exit sub

Application.EnableEvents = False

Call Single_page_Filter(Sheets("BO INFO")_
    .PivotTable(1).PivotFields(sField), Target.Text)

Cleanup:
      Application.EnableEvents = True

End Sub

제가 타이핑 하느라 오타는 있을 수 있는데 VLOOKUP 으로 입력된 셀엔터치면 작동은 하니 그부분은 감안하고 검토해 주시면 감사하겠습니다.












 
[불량 게시물 신고]  
조삿갓Worksheet_Change 이벤트는
사용자가 시트 내의 어떤 셀에 직접 값이나 수식을 입력하거나
또는 VBA 코드의 직접 대입문에 의해 셀 값이 변경되면 발생합니다.(예: Cells(2,3) = 4)
그러나 이미 입력되어 있는 수식에 의해서 참조 셀의 값이 바뀌어서 수식의 결과 값이 바뀌는 경우에는 Change 이벤트는 발생하지 않습니다.

Worksheet_Calculate 이벤트를 활용해 보시기 바랍니다.
이 이벤트는 함수가 참조하는 셀의 값이 바뀌어 재계산을 할 때 발생합니다.
08-12 (20:54)
삭제 ■신고
조삿갓또는 sDV_Address 를 VLOOKUP 함수가 있는 셀 주소 대신 사원번호를 입력하는 셀 주소로 바꾸어 주는 것이 더 확실한 정답이 될 수 있겠네요.
그래야 사원번호가 입력되어 바뀌면 필터 조건이 변경될테니까요.
08-12 (20:57)
삭제 ■신고
        
  

작성일 : 2018-08-09(17:51)
최종수정일 : 2018-08-09(18:00)