Giorni feriali in Excel VBA - Macro semplici di Excel

Sommario

Di seguito vedremo un programma in Excel VBA che calcola il numero di giorni della settimana tra due date.

I giorni feriali sono: lunedì, martedì, mercoledì, giovedì e venerdì.

Situazione:

Nota: le date sono in formato USA. Prima i mesi, poi i giorni. Questo tipo di formato dipende dalle impostazioni internazionali di Windows.

1. Innanzitutto, dichiariamo cinque variabili. date1 di tipo Date, date2 di tipo Date, dateToCheck di tipo Date, daysBetween di tipo Integer, giorni della settimana di tipo Integer e i di tipo Integer.

Dim date1 As Date, date2 As Date, dateToCheck As Date
Dim daysBetween As Integer, giorni della settimana As Integer, i As Integer

2. Inizializziamo quattro variabili. Usiamo la funzione DateDiff per inizializzare la variabile daysBetween. Questa funzione ha tre argomenti. Compiliamo "d" per il primo argomento poiché vogliamo il numero di giorni tra date1 e date2.

giorni feriali = 0
data1 = intervallo ("B2")
data2 = Intervallo ("B3")
daysBetween = DateDiff("d", data1, data2)

3. Dobbiamo controllare per ogni data compresa tra data1 e data2 (incluse data1 e data2) se la data è un giorno della settimana o meno. Se sì, incrementiamo i giorni della settimana di 1. Useremo un ciclo For Next.

Per i = 0 To daysBetween

4. Usiamo la funzione DateAdd per ottenere ogni data che dobbiamo controllare. Questa funzione ha tre argomenti. Compiliamo "d" per il primo argomento poiché vogliamo aggiungere giorni, i per il secondo argomento e date1 per il terzo argomento poiché vogliamo aggiungere i giorni a date1. In questo modo Excel VBA può controllare ogni data tra date1 e date2 a partire da date1. Aggiungi la seguente riga di codice:

dateToCheck = DateAdd("d", i, date1)

Esempio: per i = 3, Excel VBA controlla data1 + 3 giorni.

5. Successivamente, utilizziamo la funzione Weekday (funzione incorporata) per verificare se dateToCheck è un giorno della settimana o meno. La funzione Weekday restituisce 1 per una domenica e 7 per un sabato. Pertanto, incrementiamo la variabile giorni della settimana solo se Weekday(dateToCheck) non è uguale a 1 e non è uguale a 7 (significa non uguale a). Le seguenti righe di codice portano a termine il lavoro.

If (Giorno della settimana(dateToCheck) 1 And Weekday(dateToCheck) 7) Allora
giorni feriali = giorni feriali + 1
Finisci se

6. Non dimenticare di chiudere il ciclo.

Avanti io

7. Infine, mostriamo il numero di giorni della settimana utilizzando un MsgBox. Usiamo l'operatore & per concatenare (unire) due stringhe. Sebbene i giorni feriali non siano una stringa, qui funziona.

MsgBox giorni feriali e "giorni feriali tra queste due date"

8. Inserire la macro in un pulsante di comando e verificarlo.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave