이 휴가는 Microsoft Excel에서 VBA를 사용하여 지정된 날짜에 있는지 확인
이 기사에서는 토요일과 일요일을 휴일로 포함하거나 제외하는 등 지정된 날짜의 휴일인지 확인하는 사용자 정의 함수 (UDF)를 만들 것입니다.
이 샘플의 원시 데이터는 A 열의 순서대로 날짜로 구성됩니다. 토요일 또는 일요일의 휴일을 포함하거나 제외하여 지정된 날짜의 휴일인지 여부를 확인할 수 있습니다.
“공휴일”시트의 A 열에 공휴일 날짜를 지정했습니다.
주어진 날짜의 휴일 상태를 찾기 위해 “IsHoliday”사용자 지정 함수를 만들었습니다.
함수 구문
IsHoliday (Date, InclSaturdays, InclSundays)
InclSaturdays 및 InclSundays는 선택적 매개 변수입니다. 기본적으로 둘 다 TRUE 값을 갖습니다. 토요일과 일요일을 근무일로 변경하려면 해당 매개 변수의 값을 FALSE로 변경하십시오.
토요일을 근무일로 간주하는 셀 A9의 날짜에 대한 휴일 상태를 찾기 위해 셀 C9에서 아래 수식을 사용했습니다.
IsHoliday (A9, FALSE)
토요일과 일요일을 근무일로 간주하는 셀 A9의 날짜에 대한 휴일 상태를 찾기 위해 셀 D9에서 아래 수식을 사용했습니다.
IsHoliday (A9, FALSE, FALSE)
토요일과 일요일을 주 휴일로 간주하여 셀 A9의 날짜에 대한 휴일 상태를 찾기 위해 셀 E9에서 아래 수식을 사용했습니다.
IsHoliday (A9)
논리 설명
“IsHoliday”함수에서 먼저 매개 변수에 지정된 날짜가 지정된 휴일 목록에 있는지 확인합니다. 공휴일 목록에 날짜가 있으면 출력으로 “Holiday”를 반환합니다. 공휴일 목록에 날짜가 없으면 지정된 날짜가 토요일인지 일요일인지 확인합니다. 제공된 입력 매개 변수에 따라 토요일 또는 일요일을 공휴일로 포함할지 제외할지 확인합니다.
코드 설명
RngFind = Worksheets ( “Holidays”). Columns (1) .Find (LngDate)
위의 코드는 공휴일 목록에서 지정된 날짜가있는 위치를 찾는 데 사용됩니다.
RngFind가 아닌 경우 OK = “Holiday”
GoTo Last End If Above 코드는 지정된 날짜가 공휴일 목록에 있는지 확인하는 데 사용됩니다. 조건이 TRUE를 반환하면 사용자 지정 함수는 출력으로 “Holiday”를 반환하고 컨트롤은 UDF의 마지막 줄로 이동합니다.
아래 코드를 따르세요
Option Explicit Function IsHoliday(LngDate As Date, Optional InclSaturdays As Boolean = True, _ Optional InclSundays As Boolean = True) 'Declaring variables Dim RngFind As Range Dim OK As String 'Initializing the variable OK = "Working day" On Error Resume Next 'Finding the location where the specified date exist in the Holidays sheet Set RngFind = Worksheets("Holidays").Columns(1).Find(LngDate) On Error GoTo 0 'Checking whether it is holiday on the given date If Not RngFind Is Nothing Then OK = "Holiday" GoTo Last End If 'Checking whether it is Saturday on given date If InclSaturdays Then If Weekday(LngDate, 2) = 6 Then OK = "Holiday" GoTo Last End If End If 'Checking whether it is Sunday on given date If InclSundays Then If Weekday(LngDate, 2) = 7 Then OK = "Holiday" End If End If Last: IsHoliday = OK End Function
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요