이 기사에서는 토요일과 일요일을 휴일로 포함하거나 제외하는 등 지정된 날짜의 휴일인지 확인하는 사용자 정의 함수 (UDF)를 만들 것입니다.

이 샘플의 원시 데이터는 A 열의 순서대로 날짜로 구성됩니다. 토요일 또는 일요일의 휴일을 포함하거나 제외하여 지정된 날짜의 휴일인지 여부를 확인할 수 있습니다.

ArrowRawData

“공휴일”시트의 A 열에 공휴일 날짜를 지정했습니다.

ArrowHolidayList

주어진 날짜의 휴일 상태를 찾기 위해 “IsHoliday”사용자 지정 함수를 만들었습니다.

함수 구문

IsHoliday (Date, InclSaturdays, InclSundays)

InclSaturdays 및 InclSundays는 선택적 매개 변수입니다. 기본적으로 둘 다 TRUE 값을 갖습니다. 토요일과 일요일을 근무일로 변경하려면 해당 매개 변수의 값을 FALSE로 변경하십시오.

ArrowOutput

토요일을 근무일로 간주하는 셀 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]로 문의 해주세요