Провера да ли је празник на наведени датум помоћу ВБА у програму Мицрософт Екцел

Anonim

У овом чланку ћемо створити Кориснички дефинисану функцију (УДФ) како бисмо проверили да ли је празник на наведени датум, укључујући или искључујући суботе и недеље као слободне дане.

Сирови подаци за овај узорак састоје се од датума у ​​колони А. Утврдит ћемо да ли је на дан празника, укључујући или искључујући слободне седмице у суботу или недјељу.

Навели смо датуме празника у колони А на листу „Празници“.

Направили смо прилагођену функцију „ИсХолидаи“ како бисмо пронашли статус празника на одређени датум.

Синтакса функције

ИсХолидаи (Датум, укључујући суботу, укључујући недељу)

ИнцлСатурдаис и ИнцлСундаис су опционални параметри. Подразумевано, оба имају вредност ТРУЕ. Да бисте суботу и недељу променили у радне дане, промените вредност одговарајућег параметра у ФАЛСЕ.

Користили смо доњу формулу у ћелији Ц9 да пронађемо статус празника за датум у ћелији А9 узимајући у обзир суботу као радни дан.

= ИсХолидаи (А9, ФАЛСЕ)

Користили смо формулу испод у ћелији Д9 да пронађемо статус празника за датум у ћелији А9 узимајући у обзир суботу и недељу као радне дане.

= ИсХолидаи (А9, ФАЛСЕ, ФАЛСЕ)

Користили смо доњу формулу у ћелији Е9 да пронађемо статус празника за датум у ћелији А9 узимајући у обзир суботу и недељу као слободне дане.

= ИсХолидаи (А9)

Логичко објашњење

У функцији „ИсХолидаи“ прво проверавамо да ли дати датум у параметру постоји на наведеној листи празника. Ако датум постоји на листи празника, вратите „Холидаи“ као излаз. Ако датум не постоји на листи празника, проверите да ли је датум субота или недеља. На основу наведеног улазног параметра, проверите да ли да укључите или искључите суботу или недељу као празнике.

Објашњење кода

Сет РнгФинд = Ворксхеетс ("Холидаис"). Цолумнс (1). Финд (ЛнгДате)

Горњи код се користи за проналажење локације на којој наведени датум постоји на листи празника.

Ако није, онда РнгФинд није ништа

ОК = "Празник"

ГоТо Ласт

Крај Ако

Горњи код се користи за проверу да ли наведени датум постоји на листи празника. Ако услов врати ТРУЕ, тада прилагођена функција враћа „Холидаи“ као излаз и контрола се пребацује на последњи ред УДФ -а.

Молимо следите доле за код

 Опција Експлицитна функција ИсХолидаи (ЛнгДате Ас Дате, Оптионал ИнцлСатурдаис Ас Боолеан = Труе, _ Оптионал ИнцлСундаис Ас Боолеан = Труе) 'Декларисање променљивих Дим РнгФинд Ас Ранге Дим ОК Ас Стринг' Иницијализација променљиве ОК = "Радни дан" Погрешка Настави даље ' Проналажење локације на којој постоји наведени датум у табели за празнике Поставите РнгФинд = Радне листове ("Празници"). Колоне (1). Пронађи (ЛнгДате) Он Еррор ГоТо 0 'Провера да ли је празник датог датума Ако није РнгФинд није ништа Затим ОК = "Празник" Иди на последњи крај ако "Проверавам да ли је субота на дати датум Ако је укљученоСатурдаис тхен Иф Веекдаи (ЛнгДате, 2) = 6 тхен ОК =" Холидаи "ГоТо Ласт Енд Иф Енд Иф 'Проверавам да ли је недеља у дати датум Иф ИнцлСундаис Тхен Иф Веекдаи (ЛнгДате, 2) = 7 Тхен ОК = "Холидаи" Енд Иф Енд Иф Ласт: ИсХолидаи = ОК Енд Функција 

Ако вам се допао овај блог, поделите га са пријатељима на Фацебооку. Такође, можете нас пратити на Твиттер -у и Фацебоок -у.

Волели бисмо да чујемо од вас, јавите нам како можемо побољшати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште