In questo articolo, creeremo una funzione definita dall'utente (UDF) per verificare se è festivo nella data specificata, inclusi o esclusi i sabati e le domeniche come ferie settimanali.
I dati grezzi per questo campione sono costituiti dalle date in sequenza nella colonna A. Troveremo se si tratta di un giorno festivo, includendo o escludendo la settimana di riposo il sabato o la domenica.
Abbiamo specificato le date delle festività nella colonna A del foglio “Festività”.
Abbiamo creato la funzione personalizzata "IsHoliday" per trovare lo stato della vacanza alla data indicata.
Sintassi della funzione
IsHoliday(Data, InclSabato, InclDomenica)
InclSaturdays e InclSundays sono parametri facoltativi. Per impostazione predefinita, entrambi hanno valore TRUE. Per trasformare il sabato e la domenica in giorni lavorativi, modificare il valore del rispettivo parametro in FALSE.
Abbiamo utilizzato la formula seguente nella cella C9 per trovare lo stato delle festività per la data nella cella A9 considerando il sabato come giorno lavorativo.
=ÈVacanza(A9,FALSO)
Abbiamo utilizzato la formula seguente nella cella D9 per trovare lo stato delle festività per la data nella cella A9 considerando i sabati e le domeniche come giorni lavorativi.
=ÈVacanza(A9,FALSO,FALSO)
Abbiamo utilizzato la formula seguente nella cella E9 per trovare lo stato delle festività per la data nella cella A9 considerando il sabato e la domenica come ferie settimanali.
=ÈVacanza(A9)
Spiegazione logica
Nella funzione "IsHoliday", in primo luogo controlliamo se la data specificata nel parametro esiste nell'elenco delle festività specificato. Se la data esiste nell'elenco delle festività, restituire "Festività" come output. Se la data non esiste nell'elenco delle festività, controlla se la data specificata è un sabato o una domenica. In base al parametro di input fornito, verificare se includere o escludere un sabato o una domenica come festivi.
Spiegazione del codice
Imposta RngFind = Worksheets("Holidays").Columns(1).Find(LngDate)
Il codice sopra viene utilizzato per trovare la posizione in cui esiste la data specificata nell'elenco delle festività.
Se non RngFind non è niente allora
OK = "Vacanze"
Vai all'ultimo
Finisci se
Il codice sopra viene utilizzato per verificare se la data specificata esiste nell'elenco delle festività. Se la condizione restituisce TRUE, la funzione personalizzata restituisce "Holiday" come output e il controllo si sposta sull'ultima riga dell'UDF.
Si prega di seguire sotto per il codice
Opzione Funzione esplicita IsHoliday(LngDate As Date, Optional InclSaturdays As Boolean = True, _ Optional InclSundays As Boolean = True) 'Dichiarazione delle variabili Dim RngFind As Range Dim OK As String 'Inizializzazione della variabile OK = "Giorno lavorativo" On Error Resume Next ' Trovare la posizione in cui esiste la data specificata nel foglio Vacanze Set RngFind = Worksheets("Holidays").Columns(1).Find(LngDate) On Error GoTo 0 'Verifica se è vacanza alla data indicata If Not RngFind Is Nothing Quindi OK = "Holiday" GoTo Last End If 'Verifica se è sabato in una data data If InclSaturdays Then If Weekday(LngDate, 2) = 6 Then OK = "Holiday" GoTo Last End If End If 'Verifica se è domenica su data indicata If InclSundays Then If Weekday(LngDate, 2) = 7 Then OK = "Holiday" End If End If Last: IsHoliday = OK End Function
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica