Fecha de formato VBA - ¿Cómo cambiar el formato de fecha en el código VBA?

Tabla de contenido

Fecha de formato de Excel VBA

Para formatear una fecha en VBA usamos la función FORMAT incorporada en sí, 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í misma 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.

Por lo tanto, 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.

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 también 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 numérico " , debemos establecer el formato numérico colocando 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 ejecutamos 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-aaaa" '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-aaaa"' 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 "miércoles de octubre de 2019"Rango ("A8"). NumberFormat = "dddd mmmm aaaa" 'Esto cambiará la fecha a "Miércoles de octubre de 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 () Dim MyVal como variante MyVal = 43586 MsgBox Format (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

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

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

Cosas para recordar

  • La fecha predeterminada de su sistema también se aplicará a su Excel.
  • La propiedad de formato de número se puede utilizar para cambiar el formato de fecha en VBA.
  • Usando la función FORMAT, podemos cambiar el formato de la fecha.
  • Excel almacena la fecha como números de serie y, si aplica el formato de fecha, se mostrará en consecuencia.

Articulos interesantes...