Fecha de formato VBA

Fecha de formato de Excel VBA

Para formatear una fecha en VBA usamos la función FORMAT incorporada, toma la entrada como formato de fecha y devuelve el formato deseado requerido, los argumentos requeridos para esta función son la expresión en sí y el tipo de formato.

El formato de fecha y hora son cosas sensibles en Excel y lo mismo se aplica a VBA también. La fecha y hora predeterminadas se basan en la fecha del sistema en la que estamos trabajando, que puede variar de un sistema a otro. En este artículo, le mostraremos diferentes técnicas para formatear fechas con códigos VBA.

Para cambiar el formato de fecha con la codificación VBA, debemos conocer cuáles son los formatos de fecha y su impacto en la fecha.

La siguiente tabla muestra los diferentes formatos de fecha y sus códigos.

Entonces, si tiene en cuenta que el gráfico anterior que formatea la fecha a través de la codificación VBA no es una tarea difícil en absoluto.

¿Cómo cambiar el formato de fecha en VBA?

A continuación se muestran los ejemplos de formato de fecha de Excel VBA.

Puede descargar esta plantilla de Excel de fecha de formato VBA aquí - Plantilla de Excel de fecha de formato VBA

Ejemplo 1

Por ejemplo, tenemos la misma fecha en varias celdas de la hoja de trabajo como se muestra a continuación.

Ahora aplicaremos diferentes formatos de fecha para la misma fecha para ver el impacto en diferentes códigos de formato de fecha.

Primero, copie los mismos datos en la siguiente columna para ver el impacto.

Para la primera fecha, es decir, la celda A1, aplicaremos el formato "DD-MM-AAAA" .

En el código primero, necesitamos seleccionar la celda usando el objeto RANGE .

Código:

 Sub Date_Format_Example1 () Rango ("A1") End Sub 

Dado que estamos cambiando el formato de fecha de la celda, necesitamos acceder a la propiedad " Formato de número " del objeto RANGE.

Código:

 Sub Date_Format_Example1 () Rango ("A1"). NumberFormat End Sub 

Después de acceder a " Formato de número ", debemos establecer el formato de número poniendo el signo igual y aplicar el código de formato entre comillas dobles.

Código:

 Sub Date_Format_Example1 () Rango ("A1"). NumberFormat = "dd-mm-aaaa" 'Esto cambiará la fecha a "23-10-2019" End Sub 

Cuando ejecutemos este código, aplicará el formato de número a la celda A1 como “ DD-MM-YYY ”.

Salida:

Ejemplo # 2

De manera similar, también he aplicado diferentes códigos de formato para otras celdas y a continuación se muestra el código VBA para usted.

Código:

Sub Date_Format_Example2 () Rango ("A1"). NumberFormat = "dd-mm-aaaa" 'Esto cambiará la fecha a "23-10-2019" Rango ("A2"). NumberFormat = "ddd-mm-aaa" 'Esto cambiará la fecha al rango "Wed-10-2019" ("A3"). NumberFormat = "dddd-mm-aaaa"' Esto cambiará la fecha al rango "Wednesday-10-2019" ("A4") .NumberFormat = "dd-mmm-aaaa" 'Esto cambiará la fecha al rango "23-Oct-2019" ("A5"). NumberFormat = "dd-mmmm-aaa"' Esto cambiará la fecha a "23- Octubre-2019 "Rango (" A6 "). NumberFormat =" dd-mm-aa "'Esto cambiará la fecha a" 23-10-19 "Rango (" A7 "). NumberFormat =" ddd mmm yyyy "' Este cambiará la fecha a "Wed Oct 2019 "Rango (" A8 "). NumberFormat =" dddd mmmm yyyy "'Esto cambiará la fecha a" Miércoles octubre 2019 "End Sub

El resultado de este código será el siguiente.

Salida:

Cambiar el formato de fecha utilizando la función FORMAT

En VBA tenemos una función llamada FORMATO que se puede usar para aplicar el formato deseado a la celda.

Solo necesitamos especificar cuál es el valor de "Expresión" y aplicar el "Formato" en consecuencia.

Mira el siguiente código para ver un ejemplo.

Código:

 Sub Date_Format_Example3 () Atenuar MyVal como variante MyVal = 43586 Formato MsgBox (MyVal, "DD-MM-AAAA") End Sub 

En el código anterior, he definido la variable como variante (que puede contener cualquier valor).

Código:

 Atenuar MyVal como variante 

A continuación, para esta variable, le asigné el valor 43586.

Código:

MyVal = 43586

A continuación, en el cuadro de mensaje, he mostrado el resultado de la variable, pero antes de mostrar el resultado hemos utilizado la función " FORMAT " para formatear el valor de la variable " MyVal " y el formato que se da es " DD-MM- YYYY ”.

Código:

Formato de MsgBox (MyVal, "DD-MM-AAAA")

Ok, ejecutemos el código y veamos el resultado en el cuadro de mensaje en VBA.

Salida:

Como puede ver arriba, el resultado se muestra como " 01-05-2019 ".

Ahora debe estar preguntándose que hemos proporcionado el número de serie, pero el resultado se muestra como la fecha. Esto se debe a que Excel almacena la fecha como números de serie, por lo que el valor 43586 es igual a la fecha "01-05-2019" y si aumenta el número en 1, es decir, 43587, la fecha será "02-05-2019".

Código:

 Sub Date_Format_Example3() Dim MyVal As Variant MyVal = 43586 MsgBox Format(MyVal, "DD-MM-YYY") End Sub 

Things to Remember

  • The default date of your system will be applied to your excel as well.
  • Number Format property can be used to change the date format in VBA.
  • Using the FORMAT function, we can change the date format.
  • Excel stores date as serial numbers and if you apply date format it will show accordingly.