Kontrollige, kas määratud kuupäeval on puhkus, kasutades Microsoft Excelis VBA -d

Anonim

Selles artiklis loome kasutaja määratletud funktsiooni (UDF), et kontrollida, kas see on määratud kuupäeval puhkus, sealhulgas laupäevad ja pühapäevad nädalapäevadena või mitte.

Selle valimi töötlemata andmed koosnevad veerus A olevast kuupäevast. Leiame, kas antud kuupäeval on puhkus, sealhulgas laupäeval või pühapäeval puhkepäev või mitte.

Puhkuse kuupäevad oleme täpsustanud lehe „Pühad” veerus A.

Oleme loonud kohandatud funktsiooni IsHoliday, et leida puhkuse olek antud kuupäeval.

Funktsiooni süntaks

IsHoliday (kuupäev, sh laupäevad, sh pühapäevad)

InclSaturdays ja InclSundays on valikulised parameetrid. Vaikimisi on mõlemal väärtus TRUE. Laupäeva ja pühapäeva tööpäevadeks muutmiseks muutke vastava parameetri väärtuseks VÄÄR.

Lahtris A9 kuupäeva puhkuse oleku leidmiseks oleme lahtris C9 kasutanud allolevat valemit, pidades laupäeva tööpäevaks.

= IsHoliday (A9, FALSE)

Lahtris A9 kuupäeva puhkuse oleku leidmiseks oleme lahtris D9 kasutanud allolevat valemit, pidades laupäevi ja pühapäevi tööpäevadeks.

= IsHoliday (A9, FALSE, FALSE)

Kasutasime lahtris E9 allolevat valemit, et leida lahtris A9 kuupäeva puhkuse olek, pidades nädalapäevadeks laupäevi ja pühapäevi.

= IsHolidays (A9)

Loogiline seletus

Funktsioonis „IsHoliday” kontrollime kõigepealt, kas parameetris antud kuupäev on määratud puhkuste loendis olemas. Kui puhkuste loendis on kuupäev olemas, tagastage väljundina „Puhkus”. Kui puhkuste loendis pole kuupäeva, kontrollige, kas antud kuupäev on laupäev või pühapäev. Esitatud sisendparameetri põhjal kontrollige, kas lisada laupäev või pühapäev pühade hulka või mitte.

Koodi selgitus

Määra RngFind = Töölehed ("Pühad"). Veerud (1). Leia (LngDate)

Ülaltoodud koodi kasutatakse puhkuse loendis asukoha leidmiseks, kus määratud kuupäev on olemas.

Kui ei, siis pole RngFind midagi

OK = "puhkus"

GoTo Last

Lõpp Kui

Ülaltoodud koodi abil kontrollitakse, kas puhkuste loendis on määratud kuupäev. Kui tingimus tagastab tõese väärtuse, tagastab kohandatud funktsioon väljundina „puhkuse” ja juhtnupp liigub UDF -i viimasele reale.

Palun järgige koodi allpool

 Valik Selgesõnaline funktsioon IsHoliday (LngDate kui kuupäev, valikuline, sh laupäevad kui Boolean = tõene, _ Valikuline InclSundays As Boolean = tõene) 'Muutujate deklareerimine Dim RngFind As Range Dim OK String' Muutuja initsialiseerimine OK = "Tööpäev" vea jätkamisel Asukoha leidmine, kus määratud kuupäev eksisteerib lehel Pühad Set RngFind = Töölehed ("Pühad"). Veerud (1). Leia (LngDate) On Error GoTo 0 'Kontrollimine, kas antud kuupäeval on puhkus Kui mitte RngFind is Nothing Siis OK = "Puhkus" GoTo Last End If 'Kontrollimine, kas antud kuupäeval on laupäev Kui ka laupäevad Siis kui nädalapäev (LngDate, 2) = 6 Siis OK = "Puhkus" GoTo Last End If End Kui kontrollitakse, kas on pühapäev antud kuupäev Kui ka pühapäevad, siis kui nädalapäev (LngDate, 2) = 7 Siis OK = "puhkus" lõpp, kui lõpp, kui viimane: IsHoliday = OK lõppfunktsioon 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile