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

 dew (dewdrop)

추천:  2
파일:     조회:  1389
제목:   [RE]자재소요량 - VBA 작동이 안 됩니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

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

어떤 분께 도움을 받아 현재 파일의 vba 코드를 입력하였으나 계속 문제가 생겨서 도움 요청 드립니다.

구현되어야 하는 액션은


Production plan에 생산 일정이 있을 경우 
BOM에서 생산 예정인 아이템 코드의 원자재 코드와 비율을 찾아 
Requirements에 '생산 예정 수량X해당 원자재 사용 비율'을 출력
해서 최종 자재 소요량을 구하고자 합니다.

계속 디버깅이 발생하는데 솔직히 말씀드리면 아무리 들여다보아도 잘 모르겠어서 도움 요청 드립니다.

부디 도움 부탁 드릴게요.


==============[테아님 글에 대한 답변입니다]==============

약간의 오류가 있습니다... 아래와 같이 수정하세요... 열공하십시오.


        For Each rng In Range(Cells(FindR + 3, 4), Cells(cntR, cntC)).SpecialCells(2)  -> 해당되는 셀이 없을 경우 오류가 발생함
            If IsDate(Cells(FindR + 2, rng.Column)) = True Then
                rng.ClearContents
            End If
        Next

---> 위 구문은 초기화 하는 부분이므로 아래와 같이 수정하는 것이 효율적임

       Range(Cells(FindR + 3, 4), Cells(cntR, cntC)).ClearContents

그리고 

        Set rng = Range(Cells(4, 2), Cells(cntR, 2))
        For Each rng In rng    -> 오류 발생함 

---> 위 구문을 아래과 같이 수정
        Set rngData = Range(Cells(4, 2), Cells(cntR, 2))
        For Each rng In rngData

 
[불량 게시물 신고]  
테아dew님 덕분에 디버깅은 해결 하였습니다. 너무 감사드립니다.
혹시 초기화의 범위를 설정하는 법도 알려주실 수 있으실까요? 현재대로 하면 월별 합계 수식까지 모두 지워버려서요.
부탁 드립니다.
02-14 (23:10)
삭제 ■신고
dewRange(Cells(FindR + 3, 4), Cells(cntR, cntC)).ClearContents

-> 
Range(Cells(FindR + 3, 4), Cells(cntR, cntC-1)).ClearContents
02-15 (11:36)
삭제 ■신고
        
  

작성일 : 2019-02-14(16:21)
최종수정일 : 2019-02-14(16:21)
 


 ◎ 관련글

  제 목   작성자   날짜
자재소요량 - VBA 작동이 안 됩니다. 테아 2019-02-14
[RE]자재소요량 - VBA 작동이 안 됩니다. dew 2019-02-14