Šajā rakstā mēs izveidosim lietotāja definētu funkciju (UDF), lai pārbaudītu, vai norādītajā datumā ir brīvdiena, ieskaitot vai neiekļaujot sestdienas un svētdienas kā nedēļas pārtraukumus.
Neapstrādātie dati par šo paraugu sastāv no datumiem secīgi A slejā. Mēs atradīsim, vai konkrētajā datumā ir brīvdiena, ieskaitot brīvdienu nedēļu vai sestdienu vai svētdienu.
Mēs esam norādījuši brīvdienu datumus lapas “Brīvdienas” A slejā.
Mēs esam izveidojuši pielāgotu funkciju “IsHoliday”, lai noteiktu brīvdienu statusu konkrētajā datumā.
Funkcijas sintakse
IsHolidays (datums, ieskaitot sestdienas, ieskaitot svētdienas)
InclSaturdays un InclSundays ir neobligāti parametri. Pēc noklusējuma abiem ir TRUE vērtība. Lai sestdienu un svētdienu mainītu uz darba dienām, mainiet attiecīgā parametra vērtību uz FALSE.
Mēs izmantojām zemāk esošo formulu šūnā C9, lai šūnā A9 atrastu brīvdienu statusu datumam, sestdienu uzskatot par darba dienu.
= IsHolidays (A9, FALSE)
Mēs izmantojām zemāk esošo formulu šūnā D9, lai šūnā A9 atrastu brīvdienu statusu datumam, sestdienas un svētdienas uzskatot par darba dienām.
= IsHolidays (A9, FALSE, FALSE)
Mēs izmantojām zemāk esošo formulu šūnā E9, lai šūnā A9 atrastu brīvdienu statusu datumam, sestdienas un svētdienas uzskatot par brīvdienām.
= IsHolidays (A9)
Loģisks skaidrojums
Funkcijā “IsHoliday” vispirms pārbaudām, vai norādītais datums parametrā pastāv norādītajā brīvdienu sarakstā. Ja brīvdienu sarakstā ir datums, atgrieziet “Holiday” kā izvadi. Ja brīvdienu sarakstā nav datuma, pārbaudiet, vai datums ir sestdiena vai svētdiena. Pamatojoties uz sniegto ievades parametru, pārbaudiet, vai iekļaut vai izslēgt sestdienu vai svētdienu kā brīvdienas.
Koda skaidrojums
Iestatīt RngFind = Darblapas ("Brīvdienas"). Kolonnas (1). Atrast (LngDate)
Iepriekš minētais kods tiek izmantots, lai atrastu vietu, kur brīvdienu sarakstā ir norādītais datums.
Ja nē, tad RngFind nav nekas
Labi = "Brīvdienas"
GoTo Last
Beigas Ja
Iepriekš minētais kods tiek izmantots, lai pārbaudītu, vai brīvdienu sarakstā ir norādīts datums. Ja nosacījums atgriež TRUE, tad pielāgotā funkcija atgriež “Holiday” kā izvadi un vadība pāriet uz UDF pēdējo rindu.
Lūdzu, sekojiet tālāk norādītajam kodam
Opcija Skaidra funkcija IsHoliday (LngDate kā datums, pēc izvēles InclSaturdays As Boolean = True, _ Optional InclSundays As Boolean = True) 'Mainīgo deklarēšana Dim RngFind As Range Dim OK As String' Mainīgā inicializēšana OK = "Working day" On Error Resume Next ' Atrašanās vietas atrašana, kur norādītais datums pastāv brīvdienu lapā Set RngFind = Worksheets ("Holidays"). Kolonnas (1). Find (LngDate) On Error GoTo 0 'Pārbaude, vai noteiktā datumā ir brīvdiena Ja nē RngFind Is Nothing Tad Labi = "Brīvdienas" GoTo Last End If 'Pārbauda, vai noteiktā datumā ir sestdiena Ja Ietver sestdienas Tad Ja Ja nedēļas diena (LngDate, 2) = 6 Tad OK = "Svētki" GoTo Last End If Beigas Ja' Pārbauda, vai ir svētdiena dots datums If InclSundays then If If Weekday (LngDate, 2) = 7 Tad OK = "Holiday" Beigas Ja Beigas Ja Last: IsHoliday = OK Beigu funkcija
Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē