달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형

 

 

 

[ 엑셀VBA ] 입력된 날짜의 마지막 날짜 구하기 - DateAdd 함수

 

 

대용량의 데이터를 다루는 작업을 하다보면 현재 날짜로 부터 첫날짜를 구하고 이 날짜로 부터 월의 마지막 날짜

를 구하여 월의 첫날과 마지막 날사이의 데이터 집게를 구하는 경우가 많은데 오늘을 이러한 날짜를 구하는

프로시져를  포스팅하고자 한다.

 

 DateAdd 함수를 사용하여 구하는 데  DateAdd의 구조는  DateAdd("기간", 더하거나 뺄 기간(정수), 지정한 날짜)

의 구조로 이루어져 있다.

 

 

    Dim StartDay$

    Dim tmpday $

    Dim EndDay $

 

     ActiveSheet.Cells(1 1).Value = Format(ActiveSheet.Year1.Value & "-" & ActiveSheet.Mon1.Value & "-01, "YYYY-MM-DD")
    '--> 먼저 Cells(1,1)에 Year1 , Mon1, Day1의 콤보박스로 부터 연 - 월 - 일을 받는다.

    '--> 그 다음 마지막 일을 01일로 정하여 다음달의 첫날을 구하기 위함.

 

     StartDay = ActiveSheet.Cells(1, 1).Value

    '--> StartDay을 위의 cells(1, 1)의 값을 정의
     tmpday = DateAdd("m", 1, StartDay)   '--> StartDay을 위의DateAdd함수를  이용하여 m(월) 을 1을 더해 다음달을 구함.


     EndDay = DateAdd("d", -1, tmpday)'--> tmpday 를 위의DateAdd함수를  이용하여 d(일) 을 1을 빼서 이번달 마지막날을 구함.
 


     ActiveSheet.Cells(1 2).Value = ActiveSheet.Year1.Value & "-" & ActiveSheet.Mon1.Value & "-" & EndDay

 

    '--> cells(1,2)에 현재 달의 마지막 날짜를 구한다.

 

     여기서 Y(년), M(월), D(일), W(주)를 dateadd의 두번째 숫자입력을 통해 빼거나 더할 수 있다.

 

 

해당 함수를 잘 이용하여 업무에 잘쓰시길....

 

 

728x90
반응형
:
Posted by mapagilove