VBA Weekday - Guida passo passo alla funzione Weekday in VBA

Funzione giorno della settimana VBA di Excel

Il giorno della settimana in VBA è una funzione di data e ora che viene utilizzata per identificare il giorno della settimana di una determinata data purché come input, questa funzione restituisce un valore intero compreso tra 1 e 7, c'è un argomento opzionale fornito a questa funzione che è il primo giorno della settimana, ma se non forniamo il primo giorno della settimana, la funzione assume la domenica come primo giorno della settimana per impostazione predefinita.

Possiamo dire il numero del giorno della settimana guardando una data particolare? Sì, possiamo dire il numero del giorno di quella settimana, a seconda del giorno di inizio della settimana. Nelle normali funzioni del foglio di lavoro, abbiamo una funzione chiamata WEEKDAY in Excel per indicare il numero della settimana per una data particolare. Anche in VBA abbiamo la stessa funzione per trovare la stessa cosa.

Cosa fa la funzione Weekday?

La funzione del giorno della settimana restituisce il numero del giorno della data fornita nella settimana. Per esempio, se avete date 01 st Aprile al 07 ° aprile e, se si desidera conoscere il giorno della data 05 ° aprile, se il giorno di inizio della settimana è da Lunedi, è il 5 ° giorno.

Per trovarlo, abbiamo la stessa funzione di "Giorno della settimana" in un foglio di lavoro e in VBA. Di seguito è riportata la sintassi della funzione.

Data: per quale data stiamo cercando di trovare il giorno della settimana. Questa dovrebbe essere una data corretta con il formato corretto.

(Primo giorno della settimana): per determinare il giorno della settimana della Data fornita , dobbiamo menzionare qual è il primo giorno della settimana. Per impostazione predefinita, VBA considera "lunedì" come giorno di inizio della settimana. Oltre a questo, possiamo fornire anche i seguenti giorni.

Esempi

Esempio 1

Per iniziare il procedimento, vorrei iniziare con un semplice esempio prima. Ora proveremo a trovare il giorno della settimana per la data "10-aprile-2019".

Passaggio 1: definire la variabile come stringa

Codice:

Sub Weekday_Example1 () Dim k As String End Sub
Passaggio 2: assegna valore alla variabile

Assegnare il valore alla variabile “k” applicando la funzione WEEKDAY.

Codice:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Passaggio 3: immettere la data nella funzione

La data che stiamo testando qui è "10-apr-2019", quindi passa la data come "10-apr-2019".

Codice:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Passaggio 4: mostra il valore della variabile in MsgBox

Per impostazione predefinita, il primo giorno della settimana considera "lunedì", quindi ignora questa parte. Chiudere la staffa. La riga successiva mostra il valore della variabile "k" nella finestra di messaggio VBA.

Codice:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub

Ok, abbiamo finito.

Se eseguiamo il codice, otterremo il risultato come "4" perché a partire da domenica, la data fornita (10-apr-2019) cade il 4 ° giorno della settimana.

Nota: il giorno della settimana di inizio del mio sistema è "domenica".

Allo stesso modo, se modifichi il giorno di inizio della settimana, continua a variare. Di seguito è riportata una riga di esempio per lo stesso.

Codice:

k = Weekday ("10-Apr-2019", vbMonday) "Restituisce 3 k = Weekday (" 10-Apr-2019 ", vbTuesday)" Restituisce 2 k = Weekday ("10-Apr-2019", vbWed Wednesday) "Restituisce 1 k = giorno della settimana (" 10-apr-2019 ", vbTh Thursday)" Restituisce 7 k = giorno della settimana ("10-apr-2019", vbFriday) "Restituisce 6 k = giorno della settimana (" 10-apr-2019 ", vbSaturday)" Restituisce 5 k = Weekday ("10-Apr-2019", vbSunday) "Restituisce 4

Esempio # 2: arriva se la data è nel fine settimana o no

Supponiamo di avere una data come la seguente e di voler trovare la data del prossimo fine settimana, quindi possiamo utilizzare la funzione WEEKDAY per arrivare ai risultati.

Dobbiamo usare WEEKDAY con condizione IF e loop per arrivare al risultato. Ho scritto il codice per farti andare riga per riga per ottenere la logica.

Codice:

Sub Weekend_Dates () Dim k As Integer For k = 2 To 9 If Weekday (Cells (k, 1) .Value, vbMonday) = 1 Then Cells (k, 2) .Value = Cells (k, 1) + 5 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 2 Then Cells (k, 2) .Value = Cells (k, 1) + 4 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 3 Then Cells (k, 2) .Value = Cells (k, 1) + 3 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 4 Quindi Cells (k, 2) .Value = Cells (k, 1) + 2 ElseIf Weekday (Cells (k, 1) .Value, vbMonday) = 5 Then Cells (k, 2) .Value = Cells (k, 1) + 1 Else Cells (k, 2) .Value = "Questo è effettivamente il fine settimana Data "End If Next k End Sub

Questo arriverà ai risultati di seguito.

Guarda le celle B6 e B7. Abbiamo ottenuto il risultato come "Questa è in realtà la data del fine settimana" perché le date "04-maggio-2019" e "06-aprile-2019" sono in realtà date del fine settimana, quindi non è necessario mostrare la data del fine settimana per le date del fine settimana. Per impostazione predefinita, otteniamo il risultato come questo.

Articoli interessanti...