VBA Weekday | Guia pas a pas de la funció del dia de la setmana a VBA

Funció ExcelBA VBA Weekday

Entre setmana a VBA és una funció de data i hora que s'utilitza per identificar el dia de la setmana d'una data determinada, sempre que sigui una entrada, aquesta funció retorna un valor enter d'entre 1 i 7, hi ha un argument opcional proporcionat a aquesta funció que és el primer dia de la setmana, però si no proporcionem el primer dia de la setmana, la funció assumeix diumenge el primer dia de la setmana per defecte.

Podem indicar el número del dia de la setmana mirant una data concreta? Sí, podem indicar el número de dia d’aquesta setmana en funció del dia d’inici de la setmana. A les funcions normals del full de treball, tenim una funció anomenada WEEKDAY en excel per indicar el número de la setmana per a una data concreta. A VBA també tenim la mateixa funció per trobar el mateix.

Què fa la funció Weekday?

La funció de dia de la setmana retorna el número de dia de la data proporcionada a la setmana. Per exemple, si teniu dates de l'1 d'abril al 7 d'abril i si voleu saber el dia de la data del 5 d'abril si el dia d'inici de la setmana és a partir de dilluns, és el 5è dia.

Per trobar-ho, tenim la mateixa funció "Weekday" en un full de treball i també en VBA. A continuació es mostra la sintaxi de la funció.

Data: Per a quina data intentem trobar el dia de la setmana. Hauria de ser una data adequada amb el format correcte.

[Primer dia de la setmana]: Per tal de determinar el dia de la setmana proporcionat Data cal esmentar quin és el primer dia de la setmana. Per defecte, VBA considera "dilluns" com el dia inicial de la setmana. A part d'això, també podem subministrar els dies següents.

Exemples

Podeu descarregar aquesta plantilla Excel de la funció VBA WeekDay aquí - Plantilla Excel de la funció VBA WeekDay

Exemple 1

Per iniciar el procediment, deixeu-me començar amb un exemple senzill. Ara intentarem trobar el dia de la setmana per a la data "10-abril-2019".

Pas 1: definiu la variable com a Cadena

Codi:

 Sub Weekday_Example1 () Dim k As String End Sub 

Pas 2: assigneu valor a la variable

Assigneu el valor a la variable "k" aplicant la funció WEEKDAY.

Codi:

 Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub 

Pas 3: introduïu la data a la funció

La data que estem provant aquí és "10-abr-2019", de manera que supereu la data com "10-abr-2019".

Codi:

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

Pas 4: mostra el valor de la variable a MsgBox

Per defecte, pren el primer dia de la setmana com a "dilluns", així que ignora aquesta part. Tanqueu el parèntesi. A la línia següent, mostreu el valor de la variable "k" al quadre de missatge VBA.

Codi:

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

D’acord, ja hem acabat.

Si executem el codi, obtindrem el resultat com a "4" perquè a partir del diumenge, la data indicada (10-abr-2019) cau el quart dia de la setmana.

Nota: El dia d'inici de la setmana del meu sistema és "Sunday".

De la mateixa manera, si canvieu el dia d'inici de la setmana, continuarà variant. A continuació es mostra una línia d’exemple per a la mateixa.

Codi:

k = Weekday ("10-abr-2019", vbDilluns) "Això retorna 3 k = Weekday (" 10-abr-2019 ", vbMarts)" Això retorna 2 k = Weekday ("10-abr-2019", vbDimecres) 'Això retorna 1 k = Weekday ("10-abr-2019", vbThursday)' Això retorna 7 k = Weekday ("10-abr-2019", vbFriday) 'Això retorna 6 k = Weekday ("10-abr-2019 ", vbDissabte)" Això retorna 5 k = Weekday ("10-abr-2019", vbDiumenge) "Això retorna 4 

Exemple 2: arribeu si la data és el cap de setmana o no

Suposem que teniu una data com la següent i voleu trobar la propera cita del cap de setmana, a continuació, podem utilitzar la funció WEEKDAY per arribar als resultats.

Hem d’utilitzar WEEKDAY amb condició i bucles IF per arribar al resultat. He escrit el codi perquè aneu línia per línia per obtenir la lògica.

Codi:

 Sub Week__Dates () Dim k com enter Per a k = 2 a 9 If Weekday (Cel·les (k, 1). Valor, vbDilluns) = 1 Aleshores Cel·les (k, 2). Valor = Cel·les (k, 1) + 5 ElseIf Weekday (Cel·les (k, 1). Valor, vbDilluns) = 2 Llavors Cel·les (k, 2). Valor = Cel·les (k, 1) + 4 ElseIf Weekday (Cel·les (k, 1). Valor, vbDilluns) = 3 Després Cel·les (k, 2). Valor = Cel·les (k, 1) + 3 ElseIf Weekday (Cel·les (k, 1). Valor, vbDilluns) = 4 A continuació, Cel·les (k, 2). Valor = Cel·les (k, 1) + 2 ElseIf Weekday (Cel·les (k, 1). Valor, vbDilluns) = 5 A continuació, Cel·les (k, 2). Valor = Cel·les (k, 1) + 1 Cel·les (K, 2) .Valor = "Aquest és en realitat el cap de setmana Data "Finalitza si següent k Finalitza sub 

Això arribarà als resultats següents.

Mireu les cel·les B6 i B7, obtenim el resultat com "Aquesta és la data del cap de setmana", ja que les dates "04-maig-2019" i "06-abr-2019" són dates de cap de setmana, de manera que no cal mostrar la data del cap de setmana. per a dates de cap de setmana. Per defecte, obtenim el resultat així.