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

작성자:  

 Target (gskim10)

추천:  2
파일:     조회:  5321
제목:   VBA 해당월 마지막일 자동 지정하기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

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

엑세스 연동해서 엑셀에서 자료를 가져오는데..
시작일은 해당시트의 셀을 지정하고, 종료일은 시작일의 해당월 마지막일을 자동으로 지정되게 하고 싶은데요..
고수님들 도움 부탁 드립니다.

시작일 = Sheets("실적").Range("C3").Value 
종료일 = Sheets("실적").Range("D3").Value  --> 자동을로 지정할 항목   
 
[불량 게시물 신고]  
조삿갓예시하신 수식(명령)이 VBA 코드로 그대로 쓰신다면
D3 셀에 워크시트 함수를 이용하여 월말일을 계산해 두어야 하겠군요.
그런 의도라면, 워크시트의 D3 셀에
=EOMONTH(C3,0)
이라고 입력하시면 됩니다.
- 워크시트 함수 EOMONTH는 123150번 질문의 댓글 답변을 참고하세요
http://www.officetutor.co.kr/board/Dtype/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=123150&page=&fchk=&fval=

또는, 종료일을 VBA에서 계산하여 위크시트에 입력하고 싶다면
종료일 = dateserial(year(시작일),month(시작일)+1,0)
로 계산하면 됩니다.
- 3월 0일은 2월 말일을 의미합니다.
08-22 (16:14)
삭제 ■신고
Target기본 자료를 엑세스 에서 가져오는데 적용해보니 오류가 뜨네요..08-22 (17:39)
삭제 ■신고
조삿갓파일을 첨부해 보세요.08-22 (20:18)
삭제 ■신고
구석마을조삿갓님이 설명을 잘 해 주셨네요.

만약 시작일이
Range("C3").Value = 2017년 8월 22일 이라고 하면

CDate(Application.EoMonth(Range("C3").Value, 0))


이전에는 이렇게도 했답니다.
DateSerial(Year(Range("C3").Value ), Month(Range("C3").Value ) + 1, 1) - 1


다음달 1일에서 1을 빼면 이번달 마지막 날이지요.
행잡~~
08-22 (22:24)
삭제 ■신고
        
  

작성일 : 2017-08-22(09:54)
최종수정일 : 2017-08-22(09:54)