Función de data VBA (12 usos de macros con exemplos)

  • Comparte Isto
Hugh West

Táboa de contidos

Na aplicación Microsoft Visual Basic, as funcións de data ou calquera concepto relacionado coa data son esenciais para realizar varias operacións no seu conxunto de datos. Podes atoparte en varias situacións nas que terás que usar estas funcións. Neste tutorial, aprenderá sobre a función Data de VBA con exemplos axeitados e ilustracións adecuadas. Ademais, proporcionarémosche varias funcións de data que podes implementar na túa folla de traballo.

Descargar Practice Workbook

Usos de VBA Date.xlsm

Introdución á función de data de VBA

Excel clasifica as datas na función Data/Hora . É unha función integrada. Podemos usalo en macros de VBA para realizar calquera operación relacionada coa data.

Antes de comezar coa función Data, debes coñecer as variables de data en VBA .

⏺ Sintaxe

Data()

⏺ Argumentos Explicacións

Non hai argumentos .

⏺ Devolve

Devolve a data actual.

⏺ Dispoñible en

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

⏺ Exemplo

Como sabes, non hai argumentos que só podes introducir como o seguinte:

7415

Cando traballamos coa función Data, non damos ningún paréntese nos códigos VBA como este exemplo.

Saída :

12Domingo

2 –       Luns

3 –       Martes

4 –       Mércores

5 –       Xoves

6 –       Venres

7 –       Sábado

Fragmento de código:

6991

Saída:

Como podes ver, a función de data de VBA devolve 4. Isto significa Mércores.

Contido relacionado: Como usar a función de corrección en Excel VBA (4 exemplos)

9. Función WeekdayName de VBA

Devolve unha cadea que mostra o día limitado da semana.

Sintaxe :

WeekdayName(weekday, abreviate, firstdayofweek)

Argumento:

día da semana: Campo obrigatorio. A identificación numérica do día da semana. O valor numérico de cada día depende da configuración do primeiro día da semana.

abrevia: Isto é opcional. Valor booleano que implica se se quere acurtar o nome do día da semana. Se se omite, o valor predeterminado é Falso, o que significa que o nome do día da semana non se abrevia nin se acurta.

firstdayofweek: Campo opcional. Valor numérico que indica o primeiro día da semana. Pode ter varios valores.

O argumento firstdayofweek pode ter os seguintes valores:

vbSunday – utiliza o domingo como o día máis importante da semana.

vbMonday : emprega o luns como primeiro día da semana.

vbTuesday : funciona o martes como primeiro día da semana. día dea semana.

vbMércores : emprega o mércores como primeiro día da semana.

vbXoves : funciona o xoves como día da semana. .

vbFriday : emprega o venres como primeiro día da semana.

vbSaturday : funciona o sábado como primeiro día da semana.

vbUseSystemDayOfTheWeek : utiliza o primeiro día da semana que está definido pola configuración do dispositivo.

Fragmento de código:

7540

Saída:

Como podes ver, os códigos VBA anteriores mostran o nome do día da semana.

Contido relacionado: como para usar a función VBA WeekdayName en Excel (2 exemplos)

10. Función ano en VBA Data

Devolve unha Variante (enteiro) que ten un número real que expresa o ano.

Sintaxe :

Ano(data)

Argumento:

O argumento de data requirido é calquera Variante, expresión numérica, expresión de cadea ou calquera combinación. Representa unha data. Se a data inclúe Nulo, tamén devolverá Nulo.

Fragmento de código:

2487

Saída:

Aquí podes ver o ano da data indicada despois de implementar o código VBA.

Ler máis: Como usar a función de substitución de VBA en Excel ( 11 Aplicacións)

11. Función FormatDateTime

Esta función devolve unha expresión con formato de data ou hora.

Sintaxe :

FormatDateTime(Data, [ NamedFormat])

Argumento:

Data: Campo obrigatorio. Expresión de data a formatear.

NamedFormat: Isto é opcional. É un valor numérico que mostra o formato de data/hora. Se se omite, utilizou o vbGeneralDate .

O NamedFormat pode ter os seguintes valores:

vbGeneralDate (0): Mostrar unha data e/ou hora. Se hai unha parte de data, exprésaa como unha data curta. Se hai unha parte do tempo, móstraa como un tempo longo. Ambas partes móstranse se están presentes.

vbLongDate(1): Representa unha data utilizando a configuración de data longa seleccionada na configuración rexional do teu ordenador.

vbShortDate (2): Mostra unha data utilizando o formato de data curta especificado na configuración rexional do teu ordenador.

vbLongTime(3): Mostra unha hora empregando o formato de hora especificado en a configuración rexional do teu ordenador.

vbShortTime(4): Mostra unha hora utilizando o formato de 24 horas (hh:mm).

Fragmento de código:

6626

Saída:

Verás as seguintes caixas de diálogo despois de executar o código:

Aquí podes ver todos os formatos de data e hora en VBA.

Ler máis: Como usar a función TimeValue de VBA (6 exemplos relevantes)

12. Función VBA CDate

A función converte unha expresión de data e hora válidas nunha data típica.

Sintaxe :

CData(data)

Argumento:

O argumento de data requirido é calquera Variante, expresión numérica, expresión de cadea ou calquera combinación. Representa unha data. Se a data inclúe Nulo, tamén devolverá Nulo.

Fragmento de código:

5641

Saída:

Como podes ver, o noso código VBA acaba de devolver un formato de data típico de Excel.

Contido relacionado: Como usar a función VBA DIR en Excel. (7 exemplos)

Exemplos de data VBA

Nas seguintes seccións, proporémosche tres exemplos prácticos e axeitados de data usando VBA. Estes exemplos conterán problemas relacionados coa data e as súas solucións. Recomendámosche que leas e practiques todos estes exemplos para mellorar o teu coñecemento de VBA. Imos entrar.

1. Calcula os días vencidos usando Data en VBA

O significado de atraso está a producirse tarde ou supera a data límite. Tarde, en particular, pasado un prazo ou demasiado tarde para cumprir un requisito.

Supoñamos que tes que enviar un traballo para o domingo. Pero é martes e non o enviaches. Podes chamalo dous días de atraso.

Bótalle un ollo ao seguinte conxunto de datos:

Aquí temos un conxunto de datos dalgúns estudantes e a súa entrega de tarefas data. Podes ver a última data de envío. O noso obxectivo é atopar a data de vencemento en función da data de envío. Agora, para facelo, siga estes pasos:

📌 Pasos

  • Primeiro, prema Alt+F11 no teu teclado para abrir o editor VBA.
  • Entón, selecciona Inserir > Módulo .

  • Despois diso, escriba o seguinte código:
7513

Utilizamos o Función ABS para eliminar o signo menos.

  • A continuación, garda o ficheiro.
  • Despois diso, preme Alt+F8 no teu teclado para abrir a caixa de diálogo Macro.
  • A continuación, seleccione
  • A continuación, faga clic en Executar .

Como podes ver, utilizamos correctamente a data en VBA e atopamos os días atrasados.

Lecturas similares

  • Como usar o espazo VBA Función en Excel (3 exemplos)
  • Usar a función ChDir de VBA en Excel (4 exemplos axeitados)
  • Como usar a función IsNull en Excel VBA (5 exemplos)
  • Usar VBA While Wend Statement en Excel (4 exemplos)
  • Como chamar a un sub en VBA en Excel (4 Exemplos)

2. Busca o ano de nacemento desde a data usando VBA

Agora podes atopar o ano dunha data determinada. É bastante sinxelo de atopar.

Bótalle un ollo ao seguinte conxunto de datos:

Aquí podes ver a data de nacemento dalgunhas persoas. O noso obxectivo é extraer o ano de nacemento da data e tamén o ano de nacemento da última entrada Elizabeth.

📌 Pasos

  • Primeiro, preme Alt+F11 no teu teclado para abrir o editor VBA.
  • A continuación, selecciona Inserir>módulo .

  • Despois diso, escribao seguinte código:
6915
  • Entón, garda o ficheiro.
  • Despois diso, preme Alt+F8 no teu teclado para abrir o diálogo Macro
  • A continuación, seleccione find_year .
  • A continuación, faga clic en Executar .

Por último, podes ver que logramos extraer o ano de nacemento de cada data. Ademais, atopamos o ano de nacemento da última entrada usando a data de VBA en Excel.

3. Engade días en Data usando VBA

Agora podes definir a variable de data e usala. para engadir a data. Para facelo, estamos a usar o método DateAdd de VBA. Podes usar esta función para engadir días, meses e anos a unha data concreta.

Bótalle un ollo ao seguinte conxunto de datos:

Aquí, pode ver algúns nomes e algunhas datas adxuntos a eles. Agora, o noso obxectivo é engadir cinco días máis a estas datas indicadas e xerar unha nova data.

📌 Pasos

  • Primeiro, preme Alt +F11 no teu teclado para abrir o editor VBA.
  • A continuación, selecciona Inserir>módulo .

  • Despois diso, escriba o seguinte código:
2469

Aquí usamos “d” como argumento na función DataAdd. Podes cambialo a "y" ou "m" para engadir anos ou meses respectivamente,

  • Entón, garda o ficheiro.
  • Despois diso, preme Alt+F8 no teu teclado para abrir o cadro de diálogo Macro.
  • A continuación, selecciona.
  • A continuación, fai clic en Executar .

Como podesmira, engadimos con éxito días nunha data usando a data en VBA. Agora podes modificar o código segundo a túa elección.

💬 Cousas para lembrar

A función Data VBA funciona como a función HOXE en Excel.

VBA DATE é unha función non volátil en Excel. Isto significa que conservará os datos aínda que haxa unha interrupción na fonte de alimentación.

Basicamente, VBA garda os valores de Data como DATE no momento da implementación.

Entón, se tentas asignar unha variable de data como cadea/texto, provocará un erro.

O valor predeterminado de Data é 0: 00:00 (medianoite) do 1 de xaneiro de 0001.

Conclusión

Para concluír, espero que este titorial che proporcione un coñecemento útil sobre a Data nos códigos VBA. Recomendamos que aprendas e apliques todas estas instrucións ao teu conxunto de datos. Descarga o caderno de prácticas e proba estes ti mesmo. Ademais, non dubide en enviar comentarios na sección de comentarios. Os teus valiosos comentarios mantéñennos motivados para crear titoriais coma este.

Non esquezas consultar o noso sitio web Exceldemy.com para atopar varios problemas e solucións relacionados con Excel.

Segue aprendendo novos métodos e segue crecendo!

Funcións de data en VBA que deberías aprender

Agora, nas próximas seccións, mostrarémosche algunhas funcións de data adicionais que podes usar con numerosos propósitos en VBA. Le estas seccións para coñecer todas as formas posibles de traballar coa data en VBA. Suxerímoslles que os manteñas no teu arsenal. Seguramente mellorará o teu coñecemento.

1. DataAdd Función como Data en VBA

En VBA, usamos a función DateAdd para engadir días nunha data determinada. Despois diso, devolverá a data resultante.

Sintaxe:

DateAdd(intervalo, número, data)

Argumentos:

intervalo: É obrigatorio. A expresión de cadea é o intervalo de tempo que quere engadir.

número: Requirido. É unha expresión numérica que é o número de intervalos que quere engadir. Pode ser positivo (para obter datas no futuro) ou negativo (para obter datas no pasado).

data: A data/hora orixinal.

Agora, os argumentos intervalo poden ter os seguintes axustes:

yyyy –   Ano

q     – Trimestre

m    – Mes

a –    Día do ano

d     – Día

w    – Día laborable

ww – Semana

h    – Hora

n    – Minuto

s    – Segundo

Fragmento de código :

6907

Saída:

Como podes ver, engadiu 15 datas na data actual enVBA.

Ler máis: Como usar a función IsDate en VBA (3 exemplos)

2. Función DateDiff en VBA

A función DataDiff devolve unha Variante (longa) que determina o número de intervalos de tempo entre dúas datas especificadas.

Sintaxe :

DateDiff( intervalo, data1, data2, [ primeiro día da semana, [ primeira semana do ano ]] )

Argumentos:

intervalo: É Obrigatorio. A expresión de cadea é o intervalo de tempo que quere engadir Expresión de cadea que é o intervalo de tempo que utiliza para calcular a distinción entre dúas datas.

date1,date2 : Requirido; Variante (Data). Dúas datas que quere usar no cálculo.

firstdayofweek: Opcional. Unha constante que define o primeiro día da semana. Se non se soluciona, asúmese o domingo.

primeira tweekofyear: Opcional. Unha constante que establece a primeira semana do ano. Se non se define, suponse que a primeira semana é a semana na que aparece o 1 de xaneiro.

Agora, os argumentos intervalo poden ter a seguinte configuración:

aaaa –   Ano

q     – Trimestre

m    – Mes

a –    Día do ano

d     – Día

w    – Día laborable

ww – Semana

h    – Hora

n    – Minuto

s    – Segundo

O argumento firstdayofweek ten esta configuración:

vbSunday –utiliza o domingo como primeiro día da semana.

vbMonday : emprega o luns como primeiro día da semana.

vbTuesday : opera o martes como o primeiro día da semana.

vbMércores : emprega o mércores como primeiro día da semana.

vbXoves : funciona o xoves como o primeiro día da semana. máis ben día da semana.

vbFriday : emprega o venres como primeiro día da semana.

vbSaturday : funciona o sábado como primeiro día da semana.

vbUseSystemDayOfTheWeek : utiliza o primeiro día da semana que está definido pola configuración do dispositivo.

O primeiro do ano. ten esta configuración:

vbFirstJan1 : utiliza a semana que contén o 1 de xaneiro.

vbFirstFourDays : emprega a primeira semana que ten polo menos catro días no ano novo.

vbFirstFullWeek – opera a primeira semana completa do ano.

vbSystem – usa a primeira semana do ano. ano segundo o definido polas localizacións do teu dispositivo.

Fragmento de código:

8570

Saído put :

Ao final, devolve a diferenza entre as dúas datas en VBA.

Ler máis: Como usar a función DataDiff de VBA en Excel (9 exemplos)

3. Función DatePart como Data

A función DatePart devolve unha Variante (Enteiro) que contén a parte definida de unha data proporcionada.

Sintaxe :

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

Argumentos:

intervalo: É obrigatorio. A expresión de cadea é o intervalo de tempo que quere engadir Expresión de cadea que é o intervalo de tempo que utiliza para calcular a distinción entre dúas datas.

data: Requirido; Variante (Data). A data que quere usar no cálculo.

firstdayofweek: Opcional. Unha constante que define o primeiro día da semana. Se non se soluciona, asúmese o domingo.

primeira tweekofyear: Opcional. Unha constante que establece a primeira semana do ano. Se non se define, suponse que a primeira semana é a semana na que aparece o 1 de xaneiro.

Agora, os argumentos intervalo poden ter a seguinte configuración:

aaaa –   Ano

q     – Trimestre

m    – Mes

a –    Día do ano

d     – Día

w    – Día laborable

ww – Semana

h    – Hora

n    – Minuto

s    – Segundo

O argumento firstdayofweek ten esta configuración:

vbSunday : utiliza o domingo como o día máis importante da semana.

vbMonday : emprega o luns como primeiro día da semana.

vbTuesday : funciona o martes como primeiro día da semana.

vbWednesday : emprega o mércores como primeiro día da semana.

vbXoves : funciona o xoves como o día máis ben da semana.semana.

vbFriday : emprega o venres como primeiro día da semana.

vbSaturday : funciona o sábado como primeiro día da semana.

vbUseSystemDayOfTheWeek : utiliza o primeiro día da semana que está definido pola configuración do dispositivo.

O firstweekofyear ten estes valores:

vbFirstJan1 – opera a semana incluíndo o 1 de xaneiro.

vbFirstFourDays – usa a primeira semana que posúe como máximo catro días o novo ano.

vbFirstFullWeek – utiliza a primeira semana completa do ano.

vbSystem : emprega a primeira semana do ano segundo se selecciona polas localizacións do teu dispositivo.

Fragmento de código :

8500

Saída :

Deste xeito, podes usar esta función de data en códigos VBA.

Ler máis: Como usar a función VBA FileDateTime en Excel (3 usos)

4. Función DateSerial

Podes ver unha data baseada nun ano, mes e día introducidos usando a función DateSerial .

Sintaxe:

DataSerial(ano, mes, día)

Argumentos:

ano – Campo obrigatorio. Un número entre 100 e 9999, inclusive, ou unha expresión numérica que simboliza o ano.

mes – Campo obrigatorio. Un valor enteiro que define o mes.

día – Campo obrigatorio. Un valor enteiro que describe o día.

Fragmento de código:

6407

Saída :

Ler máis: Como usar VBA TimeSerial en Excel (3 exemplos)

4. VBA Función DateValue

Agora, usamos a función DateValue para definir unha data.

Sintaxe :

DateValue(data)

Argumento:

Aquí, o argumento data adoita ser unha expresión de cadea que describe unha data do 1 de xaneiro de 100 , ata o 31 de decembro de 9999. Independentemente, a data pode ademais calquera expresión que poida simbolizar unha data, unha hora ou ambas unha data e hora nese intervalo.

Fragmento de código:

4731

Saída :

Como podes ver, usamos correctamente a función de data en códigos VBA.

5. Función Día en VBA

Devolve unha Variante (Enteiro) que determina un número real entre 1 e 31, inclusive, que transmite o día do mes.

Sintaxe :

Día(data)

Argumento:

O argumento de data requirido é calquera Variante , expresión numérica, expresión de cadea ou calquera combinación. Representa unha data. Se a data inclúe Nulo, tamén devolverá Nulo.

Fragmento de código:

2130

Saída:

Como podes ver, utilizando os códigos VBA descubrimos que o día da data indicada é o 12.

Contido relacionado: Función de formato VBA en Excel (8 usos con exemplos)

6. Función de mes VBA como data

Devolve unha Variante (Enteiro) que define un número real entre 1 e 12,incluído, indicando o mes do ano.

Sintaxe :

Mes(data)

Argumento:

O argumento de data requirido é calquera Variante, expresión numérica, expresión de cadea ou calquera combinación. Representa unha data. Se a data inclúe Nulo, tamén devolverá Nulo.

Fragmento de código:

1193

Saída:

Contido relacionado: Como usar a función correcta de VBA en Excel (6 exemplos)

Lecturas similares

  • Como usar a función VBA Environ (4 exemplos)
  • Como usar a función VBA e Excel (4 exemplos)
  • VBA If – Then – Else Statement en Excel (4 exemplos)
  • Como usar a función VBA Abs en Excel (9 exemplos)
  • Como usar Concatenar en Excel VBA (4 métodos)

7. Función MonthName

Devolve unha cadea que demostra o mes especificado.

Sintaxe :

MonthName(mes, [ abreviar ])

Argumento:

mes: É obrigatorio. O título numérico do mes. Por exemplo, xaneiro é 1, febreiro é 2 e así por diante.

abrevia: É opcional. Valor booleano que demostra se se debe abreviar o nome do mes. Se se omite, o valor predeterminado é Falso, o que indica que o nome do mes non está abreviado.

Fragmento de código:

7841

Saída:

Como podedes ver, atopamos o nome do mespor esta función de data de VBA.

8. Función de día da semana

Devolve unha Variante ( Enteiro ) que posúe un número real que expresa o día do semana.

Sintaxe :

Día da semana (data, [ primeirodía da semana ])

Argumento:

data: O argumento de data requirido é calquera Variante, expresión numérica, expresión de cadea ou calquera combinación. Representa unha data. Se a data inclúe Nulo, tamén devolverá Nulo.

firstdayofweek: Opcional. Unha constante que define o primeiro día da semana. Se non se corrixe, asúmese o domingo.

O argumento firstdayofweek ten esta configuración:

vbSunday : utiliza o domingo como o día máis importante da semana.

vbMonday : emprega o luns como primeiro día da semana.

vbTuesday : funciona o martes como primeiro día da semana. día da semana.

vbMércores : emprega o mércores como primeiro día da semana.

vbXoves : funciona o xoves como día da semana. a semana.

vbFriday : emprega o venres como primeiro día da semana.

vbSaturday : funciona o sábado como primeiro día da semana .

vbUseSystemDayOfTheWeek : utiliza o primeiro día da semana que está definido pola configuración do dispositivo.

Parámetros de retorno

Agora, esta función devolve un número enteiro. Polo tanto, o significado destes números enteiros é o seguinte:

1

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.