Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 날짜 데이터를 비교하거나 연산하기

엑셀(Excel)/VBA
반응형

VBA 에서 날짜와 시간은 어떻게 비교해야 할까요? 날짜의 내부는 계산에 사용할 수 있도록 일련 번호로 지정되어 있습니다. 이런 일련 번호를 나라와 국가의 날짜/시간 형식에 맞게 다양한 형태로 표현하는 것입니다. 기본적으로 1900 1 1일이 일련 번호 1이고, 2008 1 1일은 1900 1 1일에서 39,448일째 날이므로 일련 번호 39448이 됩니다.

 

날짜를 비교하는 방법은 비교 연산자를 사용해서 날짜 텍스트를 비교하거나 DATEVALUE 함수를 사용해서 일련번호로 변환한 뒤 비교할 수도 있습니다. 아무래도 두 번째 방법인 DATEVALUE 함수를 이용하는 것이 정확하겠죠

 

먼저 현재 날짜를 비교해 보겠습니다. 엑셀 시트에 있는 날짜 형식의 데이터 중 현재 날짜와 동일한 날짜를 찾는 것입니다. 같은 텍스트를 찾듯이 “=” 비교 연산자와 현재 날짜를 나타내는 Date 개체를 이용합니다.

Sub ComDate()
 
    Dim rng As Range
    Dim cell As Range
   
    Set rng = ActiveSheet.Range("B2").CurrentRegion
   
    For Each cell In rng
       
        If cell.Value = Date Then
            cell.Interior.Color = vbRed
        End If
       
    Next cell
 
End Sub

 

엑셀 VBA 날짜 데이터를 비교하거나 연산하는 방법

 

다음은 부등호를 사용해서 날짜를 비교해 보겠습니다. 일반 텍스트를 비교하거나 날짜 일련번호를 비교하는 것도 가능합니다. 아래 소스는 영역에서 "2016-06-30" 보다 큰 날짜를 찾아 셀 배경색을 입히게 됩니다. 날짜를 텍스트로 비교해도 크고 작음을 판단할 수 있습니다.

If cell.Value > "2016-06-30" Then
    cell.Interior.Color = vbRed
End If

 

또한 DateValue 함수를 사용해서 날짜 일련번호로 비교할 수도 있습니다. 결과는 텍스트를 비교한 것과 같습니다.

If cell.Value > DateValue("2016-06-30") Then
    cell.Interior.Color = vbRed
End If

  

엑셀 VBA 날짜 데이터를 비교하거나 연산하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하기
엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
엑셀 VBA 문서가 열릴 때 이벤트 기능 구현하기
엑셀 Excel 현재 날짜 입력을 위한 함수 Today, now 와 단축키 사용법
반응형
Posted by 녹두장군

댓글을 달아 주세요