Funció de data VBA (12 usos de macros amb exemples)

  • Comparteix Això
Hugh West

Taula de continguts

A l'aplicació Microsoft Visual Basic, les funcions de data o qualsevol concepte relacionat amb la data són essencials per realitzar diverses operacions al vostre conjunt de dades. És possible que us trobeu en diverses situacions en què haureu d'utilitzar aquestes funcions. En aquest tutorial, aprendràs sobre la funció Data de VBA amb exemples adequats i il·lustracions adequades. A més, us proporcionarem diverses funcions de data que podeu implementar al vostre full de treball.

Baixeu el llibre de pràctiques

Usos de VBA Date.xlsm

Introducció a la funció de data de VBA

Excel classifica les dates a la funció Data/Hora . És una funció integrada. El podem utilitzar en macros de VBA per realitzar qualsevol operació relacionada amb la data.

Abans de començar amb la funció Data, heu de conèixer les variables de data a VBA .

⏺ Sintaxi

Data()

⏺ Arguments Explicacions

No hi ha arguments .

⏺ Retorna

Retorna la data actual.

⏺ Disponible a

Excel per a Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 per a Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000

⏺ Exemple

Com ja sabeu, no hi ha arguments que només podeu introduir-lo com el següent:

7391

Quan treballem amb la funció Data, no donem cap parèntesi als codis VBA com aquest exemple.

Sortida :

12Diumenge

2 –       Dilluns

3 –       Dimarts

4 –       Dimecres

5 –       Dijous

6 –       Divendres

7 –       Dissabte

Fragment de codi:

4956

Sortida:

Com podeu veure, la funció de data de VBA retorna 4. Això vol dir Dimecres.

Contingut relacionat: Com utilitzar la funció de correcció a Excel VBA (4 exemples)

9. Funció WeekdayName de VBA

Retorna una cadena que mostra el dia limitat de la setmana.

Sintaxi :

WeekdayName(weekday, abreviat, firstdayofweek)

Argument:

dia de la setmana: Camp obligatori. La identificació numèrica del dia de la setmana. El valor numèric de cada dia depèn de la configuració del primer dia de la setmana.

abreujar: Això és opcional. Valor booleà que implica si s'ha d'escurçar el nom del dia feiner. Si s'omet, el valor predeterminat és Fals, la qual cosa significa que el nom del dia de la setmana no s'abreuja ni s'escurça.

firstdayofweek: camp opcional. Valor numèric que indica el primer dia de la setmana. Pot tenir diversos valors.

L'argument firstdayofweek pot tenir els valors següents:

vbSunday : utilitza diumenge com a el primer dia de la setmana.

vbMonday : empra dilluns com a primer dia de la setmana.

vbTuesday : funciona dimarts com a primer dia dela setmana.

vbWednesday : empra el dimecres com a primer dia de la setmana.

vbThursday : funciona els dijous com a dia més aviat de la setmana .

vbFriday : empra divendres com a primer dia de la setmana.

vbSaturday : funciona dissabte com a primer dia de la setmana.

vbUseSystemDayOfTheWeek : utilitza el primer dia de la setmana que es defineix per la configuració del dispositiu.

Fragment de codi:

4169

Sortida:

Com podeu veure, els codis VBA anteriors mostren el nom del dia laborable.

Contingut relacionat: Com per utilitzar la funció VBA WeekdayName a Excel (2 exemples)

10. Funció Any a VBA Data

Retorna una Variant (Enter) que té un nombre real que expressa l'any.

Sintaxi :

Any(data)

Argument:

L'argument de data requerit és qualsevol Variant, expressió numèrica, expressió de cadena o qualsevol combinació. Representa una data. Si la data inclou Null, també retornarà Null.

Fragment de codi:

4849

Sortida:

Aquí podeu veure l'any de la data indicada després d'implementar el codi VBA.

Llegir més: Com utilitzar la funció de substitució de VBA a Excel ( 11 Aplicacions)

11. Funció FormatDateTime

Aquesta funció retorna una expressió amb el format de data o hora.

Sintaxi :

FormatDateTime(Data, [ NamedFormat])

Argument:

Data: Camp obligatori. Expressió de data que s'ha de formatar.

NamedFormat: Això és opcional. És un valor numèric que mostra el format de data/hora. Si s'omet, va utilitzar el vbGeneralDate .

El NamedFormat pot tenir els valors següents:

vbGeneralDate (0): Mostra una data i/o una hora. Si hi ha una part de data, expresseu-la com a data curta. Si hi ha una part de temps, mostra-la com a temps llarg. Les dues parts es mostren si n'hi ha.

vbLongDate(1): Representa una data utilitzant la configuració de data llarga seleccionada a la configuració regional de l'ordinador.

vbShortDate (2): Mostra una data utilitzant el format de data curta especificat a la configuració regional de l'ordinador.

vbLongTime(3): Mostra una hora utilitzant el format d'hora especificat a la configuració regional de l'ordinador.

vbShortTime(4): Mostra una hora utilitzant el format de 24 hores (hh:mm).

Fragment de codi:

1618

Sortida:

Veureu els quadres de diàleg següents després d'executar el codi:

Aquí, podeu veure tots els formats d'hora i data a VBA.

Llegir més: Com utilitzar la funció TimeValue de VBA (6 exemples rellevants)

12. Funció VBA CDate

La funció converteix una expressió de data i hora vàlida en una data típica.

Sintaxi :

CData(data)

Argument:

L'argument de data requerit és qualsevol Variant, expressió numèrica, expressió de cadena o qualsevol combinació. Representa una data. Si la data inclou Null, també retornarà Null.

Fragment de codi:

1609

Sortida:

Com podeu veure, el nostre codi VBA acaba de retornar un format de data típic d'Excel.

Contingut relacionat: Com utilitzar la funció DIR de VBA a Excel. (7 exemples)

Exemples de data VBA

A les seccions següents, us proporcionarem tres exemples pràctics i adequats de data amb VBA. Aquests exemples inclouran problemes relacionats amb la data i les seves solucions. Us recomanem que llegiu i practiqueu tots aquests exemples per millorar els vostres coneixements de VBA. Entrem-hi.

1. Calcula els dies vençuts utilitzant Data a VBA

El significat de vençut s'està produint tard o passat la data límit. Tard, en particular, passat una data límit o massa tard per complir un requisit.

Suposem que heu d'enviar una tasca fins diumenge. Però és dimarts i no l'heu enviat. Pots anomenar-ho dos dies de venciment.

Fes una ullada al conjunt de dades següent:

Aquí tenim un conjunt de dades d'alguns estudiants i els seus treballs enviats. data. Podeu veure la darrera data de presentació. El nostre objectiu és trobar la data de venciment en funció de la data de presentació. Ara, per aconseguir-ho, seguiu aquests passos:

📌 Passos

  • Primer, premeu Alt+F11 al teclat per obrir l'editor VBA.
  • A continuació, seleccioneu Insereix > Mòdul .

  • Després, escriviu el codi següent:
3005

Hem utilitzat el Funció ABS per eliminar el signe menys.

  • A continuació, deseu el fitxer.
  • Després, premeu Alt+F8 al teclat per obrir-lo. el quadre de diàleg Macro.
  • A continuació, seleccioneu
  • A continuació, feu clic a Executar .

Com podeu veure, hem utilitzat correctament la data a VBA i hem trobat els dies vençuts.

Lectures similars

  • Com utilitzar l'espai VBA Funció a Excel (3 exemples)
  • Utilitzar la funció ChDir de VBA a Excel (4 exemples adequats)
  • Com utilitzar la funció IsNull a Excel VBA (5 exemples)
  • Utilitza VBA mentre Wend declaració a Excel (4 exemples)
  • Com trucar a un sub en VBA a Excel (4 Exemples)

2. Cerqueu l'any de naixement a partir de la data mitjançant VBA

Ara podeu trobar l'any a partir d'una data concreta. És bastant senzill de trobar.

Feu una ullada al conjunt de dades següent:

Aquí podeu veure la data de naixement d'algunes persones. El nostre objectiu és extreure l'any de naixement de la data i també l'any de naixement de l'última entrada Elizabeth.

📌 Pasos

  • Primer, premeu Alt+F11 al teclat per obrir l'editor VBA.
  • A continuació, seleccioneu Insereix>mòdul .

  • Després, escriviuel codi següent:
2004
  • A continuació, deseu el fitxer.
  • Després, premeu Alt+F8 al teclat per obrir el diàleg Macro quadre.
  • A continuació, seleccioneu find_year .
  • A continuació, feu clic a Executar .

Finalment, podeu veure que tenim èxit en extreure l'any de naixement de cada data. A més, hem trobat l'any de naixement de l'última entrada utilitzant la data de VBA a Excel.

3. Afegiu dies a la data mitjançant VBA

Ara podeu definir la variable de data i utilitzar-la per afegir la data. Per fer-ho, estem utilitzant el mètode DateAdd de VBA. Podeu utilitzar aquesta funció per afegir dies, mesos i anys a una data concreta.

Feu una ullada al conjunt de dades següent:

Aquí teniu es poden veure alguns noms i algunes dates adjunts. Ara, el nostre objectiu és afegir cinc dies més a aquestes dates donades i generar una nova data.

📌 Passos

  • Primer, premeu Alt +F11 al teclat per obrir l'editor VBA.
  • A continuació, seleccioneu Insereix>mòdul .

  • Després d'això, escriviu el codi següent:
3313

Aquí hem utilitzat "d" com a argument a la funció DataAdd. Podeu canviar-lo a "y" o "m" per afegir anys o mesos respectivament,

  • Deseu el fitxer.
  • Després, premeu Alt+F8. al teclat per obrir el quadre de diàleg Macro.
  • A continuació, seleccioneu.
  • A continuació, feu clic a Executar .

Com puguismireu, hem afegit correctament dies a una data utilitzant la data a VBA. Ara, podeu modificar el codi segons la vostra elecció.

💬 Coses a recordar

La funció de data VBA funciona com la funció AVUI a Excel.

VBA DATE és una funció no volàtil a Excel. Això vol dir que conservarà les dades fins i tot si hi ha una interrupció a la font d'alimentació.

Bàsicament, VBA desa els valors de la data com a DATE en el moment de la implementació.

Per tant, si intenteu assignar una variable de data com a cadena/text, provocarà un error.

El valor predeterminat de Data és 0: 00:00 (mitjanit) de l'1 de gener de 0001.

Conclusió

Per concloure, espero que aquest tutorial us hagi proporcionat un coneixement útil sobre la data als codis VBA. Us recomanem que apreneu i apliqueu totes aquestes instruccions al vostre conjunt de dades. Descarrega el quadern de pràctiques i prova-los tu mateix. A més, no dubteu a fer comentaris a la secció de comentaris. Els vostres valuosos comentaris ens mantenen motivats per crear tutorials com aquest.

No oblideu consultar el nostre lloc web Exceldemy.com per trobar diversos problemes i solucions relacionats amb Excel.

Segueix aprenent nous mètodes i segueix creixent!

Funcions de data a VBA que hauríeu d'aprendre

Ara, a les properes seccions, us mostrarem algunes funcions de data addicionals que podeu utilitzar per a nombrosos propòsits a VBA. Llegiu aquestes seccions per conèixer totes les maneres possibles de treballar amb la data a VBA. Us recomanem que els mantingueu al vostre arsenal. Segurament millorarà els teus coneixements.

1. Funció DataAdd com a data a VBA

A VBA, fem servir la funció DateAdd per afegir dies en una data concreta. Després d'això, retornarà la data resultant.

Sintaxi:

DateAdd(interval, nombre, data)

Arguments:

interval: És obligatori. L'expressió de cadena és l'interval de temps que voleu afegir.

número: Requerit. És una expressió numèrica que és el nombre d'intervals que voleu afegir. Pot ser positiu (per obtenir dates en el futur) o negatiu (per obtenir dates en el passat).

data: La data/hora originals.

Ara, els arguments interval poden tenir la configuració següent:

yyyy –   Any

q     – Trimestre

m    – Mes

a –    Dia de l'any

d     – Dia

w    – Dia laborable

ww – Setmana

h    – Hora

n    – Minut

s    – Segon

Fragment de codi :

6232

Sortida:

Com podeu veure, va afegir 15 dates a la data actual aVBA.

Llegir més: Com utilitzar la funció IsDate a VBA (3 exemples)

2. Funció DataDiff a VBA

La funció DataDiff retorna una Variant (Llarga) que determina el nombre d'espais de temps entre dues dates especificades.

Sintaxi :

DateDiff( interval, data1, data2, [ firstdayofweek, [ firstweekofyear ]] )

Arguments:

interval: És Obligatori. L'expressió de cadena és l'interval de temps que voleu afegir. L'expressió de cadena és el període de temps que feu servir per calcular la distinció entre dues dates.

date1,date2 : Requerit; Variant (Data). Dues dates que voleu utilitzar en el càlcul.

firstdayofweek: Opcional. Una constant que defineix el primer dia de la setmana. Si no es soluciona, s'assumeix diumenge.

primer tweekofyear: Opcional. Una constant que estableix la primera setmana de l'any. Si no s'estableix, se suposa que la primera setmana és la setmana en què apareix l'1 de gener.

Ara, els arguments interval poden tenir la configuració següent:

aaaa –   Any

q     – Trimestre

m    – Mes

y –    Dia de l'any

d     – Dia

w    – Dia laborable

ww – Setmana

h    – Hora

n    – Minut

s    – Segon

L'argument firstdayofweek té aquests paràmetres:

vbSunday –utilitza diumenge com a primer dia de la setmana.

vbMonday : empra dilluns com a primer dia de la setmana.

vbTuesday : funciona dimarts com el primer dia de la setmana.

vbWednesday : empra el dimecres com a primer dia de la setmana.

vbThursday : funciona els dijous com a primer dia de la setmana. més aviat el dia de la setmana.

vbFriday : empra divendres com a primer dia de la setmana.

vbSaturday : funciona dissabte com a primer dia de la setmana.

vbUseSystemDayOfTheWeek : utilitza el primer dia de la setmana que es defineix per la configuració del dispositiu.

El primer dia de l'any. té aquests paràmetres:

vbFirstJan1 : utilitza la setmana que conté l'1 de gener.

vbFirstFourDays : empra la primera setmana que té almenys quatre dies de l'any nou.

vbFirstFullWeek – funciona la primera setmana completa de l'any.

vbSystem – utilitza la primera setmana de l'any nou. any tal com ho defineixin les ubicacions del dispositiu.

Fragment de codi:

4747

Out put :

Al final, retorna la diferència entre les dues dates a VBA.

Llegir més: Com utilitzar la funció DataDiff de VBA a Excel (9 exemples)

3. Funció DatePart com a data

La funció DatePart retorna una Variant (Enter) que conté la part definida de una data proporcionada.

Sintaxi :

DatePart(interval, data, [ firstdayofweek, [firstweekofyear ]])

Arguments:

interval: És obligatori. L'expressió de cadena és l'interval de temps que voleu afegir. L'expressió de cadena és el període de temps que feu servir per calcular la distinció entre dues dates.

data: Requerit; Variant (Data). La data que voleu utilitzar al càlcul.

firstdayofweek: Opcional. Una constant que defineix el primer dia de la setmana. Si no es soluciona, s'assumeix diumenge.

primer tweekofyear: Opcional. Una constant que estableix la primera setmana de l'any. Si no s'estableix, se suposa que la primera setmana és la setmana en què apareix l'1 de gener.

Ara, els arguments interval poden tenir la configuració següent:

aaaa –   Any

q     – Trimestre

m    – Mes

y –    Dia de l'any

d     – Dia

w    – Dia laborable

ww – Setmana

h    – Hora

n    – Minut

s    – Segon

L'argument firstdayofweek té aquests paràmetres:

vbSunday : utilitza diumenge com a dia principal de la setmana.

vbMonday : empra dilluns com a primer dia de la setmana.

vbTuesday : funciona dimarts com a primer dia de la setmana.

vbWednesday : empra el dimecres com a primer dia de la setmana.

vbThursday : funciona dijous com el dia més aviat de lasetmana.

vbDivendres : empra divendres com a primer dia de la setmana.

vbSaturday : funciona dissabte com a primer dia de la setmana.

vbUseSystemDayOfTheWeek : utilitza el primer dia de la setmana que es defineix per la configuració del dispositiu.

El firstweekofyear té aquests valors:

vbFirstJan1 – funciona la setmana inclòs l'1 de gener.

vbFirstFourDays – utilitza la primera setmana que té quatre dies com a molt inferiors a el nou any.

vbFirstFullWeek : utilitza la primera setmana completa de l'any.

vbSystem : utilitza la primera setmana de l'any tal com s'ha seleccionat segons les ubicacions del vostre dispositiu.

Fragment de codi :

8845

Sortida :

D'aquesta manera, podeu utilitzar aquesta funció de data en codis VBA.

Llegir més: Com utilitzar la funció VBA FileDateTime a Excel (3 usos)

4. Funció DateSerial

Podeu veure una data basada en un any, mes i dia introduïts mitjançant la funció DateSerial .

Sintaxi:

DataSerial(any, mes, dia)

Arguments:

any – Camp obligatori. Un nombre entre 100 i 9999, inclosos, o una expressió numèrica que simbolitzi l'any.

mes – Camp obligatori. Un valor enter que defineix el mes.

dia – Camp obligatori. Un valor enter que descriu el dia.

Fragment de codi:

4359

Sortida :

Llegir més: Com utilitzar VBA TimeSerial a Excel (3 exemples)

4. VBA Funció DateValue

Ara, utilitzem la funció DateValue per definir una data.

Sintaxi :

DateValue(data)

Argument:

Aquí, l'argument data sol ser una expressió de cadena que descriu una data des de l'1 de gener de 100 , fins al 31 de desembre de 9999. Independentment, la data pot, a més, qualsevol expressió que pugui simbolitzar una data, una hora o una data i una hora en aquest interval.

Fragment de codi:

2124

Sortida :

Com podeu veure, hem utilitzat correctament la funció de data als codis VBA.

5. Funció de dia en VBA

Retorna una Variant (Enter) que determina un nombre real entre 1 i 31, inclosos, que transmet el dia del mes.

Sintaxi :

Dia(data)

Argument:

L'argument de data requerit és qualsevol variant , expressió numèrica, expressió de cadena o qualsevol combinació. Representa una data. Si la data inclou Null, també retornarà Null.

Fragment de codi:

8152

Sortida:

Com podeu veure, utilitzant els codis VBA hem trobat que el dia de la data indicada és el 12.

Contingut relacionat: Funció de format VBA a Excel (8 usos amb exemples)

6. Funció del mes VBA com a data

Retorna una Variant (Enter) que defineix un nombre real entre 1 i 12,inclòs, que transmet el mes de l'any.

Sintaxi :

Mes(data)

Argument:

L'argument de data requerit és qualsevol Variant, expressió numèrica, expressió de cadena o qualsevol combinació. Representa una data. Si la data inclou Null, també retornarà Null.

Fragment de codi:

9944

Sortida:

Contingut relacionat: Com utilitzar la funció correcta de VBA a Excel (6 exemples)

Lectures similars

  • Com utilitzar la funció VBA Environ (4 exemples)
  • Com utilitzar VBA i la funció a Excel (4 exemples)
  • VBA If - Then - Else Statement a Excel (4 exemples)
  • Com utilitzar la funció VBA Abs a Excel (9 exemples)
  • Com utilitzar Concatenar a Excel VBA (4 mètodes)

7. Funció MonthName

Retorna una cadena que mostra el mes especificat.

Sintaxi :

MonthName(mes, [abreujat ])

Argument:

mes: És obligatori. El títol numèric del mes. Per exemple, gener és 1, febrer és 2 i així successivament.

abreujar: És opcional. Valor booleà que demostra si s'ha d'abreujar el nom del mes. Si s'omet, el valor predeterminat és Fals, que indica que el nom del mes no està abreujat.

Fragment de codi:

3889

Sortida:

Com podeu veure, hem trobat el nom del mesper aquesta funció de data de VBA.

8. Funció de dia laborable

Retorna una Variant ( Enter ) que posseeix un nombre real que expressa el dia del setmana.

Sintaxi :

Dia de la setmana (data, [ primer dia de la setmana ])

Argument:

data: L'argument de data requerit és qualsevol Variant, expressió numèrica, expressió de cadena o qualsevol combinació. Representa una data. Si la data inclou Null, també tornarà Null.

firstdayofweek: Opcional. Una constant que defineix el primer dia de la setmana. Si no es corregeix, s'assumeix diumenge.

L'argument firstdayofweek té aquests paràmetres:

vbSunday : utilitza diumenge com a el primer dia de la setmana.

vbMonday : empra dilluns com a primer dia de la setmana.

vbTuesday : funciona dimarts com a primer dia de la setmana.

vbWednesday : empra el dimecres com a primer dia de la setmana.

vbThursday : funciona dijous com a dia més aviat de la setmana.

vbFriday : empra divendres com a primer dia de la setmana.

vbSaturday : funciona dissabte com a primer dia de la setmana .

vbUseSystemDayOfTheWeek : utilitza el primer dia de la setmana que es defineix per la configuració del dispositiu.

Paràmetres de retorn

Ara, aquesta funció retorna un nombre enter. Per tant, el significat d'aquests nombres enters és el següent:

1

Hugh West és un entrenador i analista d'Excel molt experimentat amb més de 10 anys d'experiència en el sector. És llicenciat en Comptabilitat i Finances i Màster en Administració i Direcció d'Empreses. Hugh té una passió per l'ensenyament i ha desenvolupat un enfocament pedagògic únic que és fàcil de seguir i entendre. El seu coneixement expert d'Excel ha ajudat a milers d'estudiants i professionals de tot el món a millorar les seves habilitats i a destacar en les seves carreres. A través del seu bloc, Hugh comparteix els seus coneixements amb el món, oferint tutorials d'Excel gratuïts i formació en línia per ajudar les persones i les empreses a assolir tot el seu potencial.