VBA의 날짜 비교

캘린더 페이지

VBA는 1899년 12월 30일 이후의 일수로 날짜를 저장합니다.

이미지 크레디트: Sergii Gnatiuk/iStock/게티 이미지

Microsoft Visual Basic for Applications에서 날짜를 비교하는 것은 다른 데이터 형식을 비교하는 것과 다르지 않습니다. 비교하는 값은 "날짜" 유형이어야 합니다. 표준 비교 연산자를 사용할 수 있습니다. "보다 작음"의 경우 "" "보다 큼"; ">=" "보다 크거나 같음"의 경우; "같음"의 경우 "="; 및 "같지 않음"에 대한 "<>". 두 개의 비교 연산자인 "Is"와 "IsNot"을 사용할 수도 있습니다.

VBA 날짜 유형

날짜를 비교할 때 VBA가 메모리에 날짜 값을 저장하는 방법을 기억하는 것이 도움이 됩니다. 날짜는 배정밀도 부동 소수점 숫자 또는 Double로 저장됩니다. 긴 정수 부분은 1899년 12월 30일 이후의 양수 또는 음수 일 수입니다. 소수 부분은 자정 이후 경과된 시간입니다. 시간이 없는 날짜는 소수점 이하 자릿수가 0으로 설정됩니다. 예를 들어, 1967년 5월 1일은 24593.0으로 저장됩니다. 즉, VBA가 두 날짜를 비교할 때 실제로는 날짜를 나타내는 두 숫자를 비교하는 것입니다.

오늘의 비디오

문자열 대 날짜

VBA에서 날짜를 비교할 때 비교하는 값이 "날짜" 유형이고 문자열이 아닌지 확인해야 합니다. 예를 들어, 문자열 "05/01/1999"는 "05"이기 때문에 문자열 "12/31/1900"보다 작습니다. "12" 앞에 옵니다. "CDate" 함수를 사용하여 문자열을 날짜 유형으로 변환합니다(예: "CDate (텍스트박스. 값)".

유용한 기능

CDate() 외에도 날짜를 비교할 때 사용할 수 있는 다른 유용한 함수가 있습니다. "Date()" 함수는 오늘 날짜를 Date 값으로 제공합니다. "Now()" 함수는 오늘 날짜와 시간을 Date 값으로 제공합니다. 날짜 데이터 형식에는 시간 구성 요소도 포함되어 있으므로 변수의 날짜 부분만 추출할 수 있습니다. "DateValue()" 함수를 사용하여 날짜를 비교할 때, 예를 들어 "If submit > DateValue(deadline) then ..."

날짜 산술

날짜는 1899년 12월 30일 이후의 일수로 저장되기 때문에 VBA에서 날짜를 비교할 때 날짜 산술을 포함할 수 있습니다. 예를 들어 티켓이 구매한 지 3일 후에 만료되는 경우 다음과 유사한 VBA 코드를 사용하여 만료된 티켓을 확인할 수 있습니다.

공개 함수가 만료됨(날짜로 구매) As Boolean 만료됨 = False If buy+3 > Date() Then 만료됨 = True End If End Function