VBA Formato de Fecha

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 25, 2022

Este tutorial demostrará cómo formatear fechas utilizando VBA.

Formatear fechas en VBA

Hay dos métodos para dar formato a las fechas utilizando VBA.

  1. La propiedad NumberFormat de Celdas / Rangos – Para formatear las fechas almacenadas en las celdas
  2. La función VBA Format – Para formatear fechas en VBA (ej. variables)

Formato de Número – Fechas

El formato numérico por defecto de una celda en Excel es General. Puede mostrar los valores como números, texto, fechas, porcentajes o monedas cambiando el formato numérico. La propiedad NumberFormat se puede utilizar en VBA para establecer el formato numérico de las fechas en una celda o rango. Nota: Para ver los diferentes formatos de fecha estándar disponibles en Excel vaya a Inicio>Número y verá opciones como Fecha corta, Fecha larga y Hora.

Inicio-numero formato celdas rango

Inicio numero formato opciones

Fecha corta

La opción de formato numérico de fecha corta muestra la fecha en un formato numérico corto. El siguiente código establecerá la propiedad .NumberFormat de la celda A1 a Fecha corta:

Range("A1").NumberFormat = "dd/mm/yyyy"

Fecha larga

El formato numérico de fecha larga muestra la fecha en un formato más largo y escrito. El siguiente código establecerá la propiedad .NumberFormat de la celda A1 a Fecha larga:

Range("A1").NumberFormat = "dddd, dd mmmm yyyy"

Fechas personalizadas

Para ver los códigos de formato numérico personalizado que puede utilizar en VBA para dar formato a las fechas, vaya a Inicio>Número y haga clic en el Lanzador de cuadros de diálogo. Seleccione la pestaña Número y elija Personalizado.

Formato de celdas personalizado

Puede seleccionar los formatos personalizados incorporados para la fecha o crear sus propios formatos de fecha definidos por el usuario. El siguiente código establecerá la propiedad .NumberFormat de la celda A1 a un formato de fecha personalizado incorporado:

Range("A1").NumberFormat = "mmm-yy"

El resultado es:

formato celdas mes dia

El siguiente código establecerá la propiedad .NumberFormat de la celda A1, a un formato de fecha personalizado definido por el usuario:

Range("A1").NumberFormat = "dddd-dd-mmm-yy"

El resultado es:

formato diaLargo dia mes ano

 

Revisando los ejemplos preconstruidos de Excel puede aprender cómo deben introducirse los NumberFormats. Para más información, lea la documentación de Microsoft  sobre los formatos numéricos para las fechas.

Función VBA Format

Como se mencionó anteriormente, el método NumberFormat es apropiado para establecer el formato de las fechas almacenadas en las celdas de Excel. En VBA, puede utilizar la Función de Formato para convertir las fechas en cadenas con cierto formato de fecha.

Deberás usar la siguiente sintaxis para dar formato a las fechas:

Format(Representación_de_cadena, Código_de_formato_numérico) donde:

Representación_de_cadena – la cadena de texto que representa la fecha.

Código_de_formato_numérico – el código de formato numérico que especifica la forma en que debe mostrarse la fecha. El siguiente código muestra cómo formatear una representación de cadena de texto de una fecha como formato de fecha larga:

msgbox formato fecha larga

Sub msgboxFechaLarga()
    MsgBox Format("1/1/2010", "dddd, dd mmmm, yyyy")
End Sub

El resultado es:

msgbox formato fecha larga resultado

Observe que la función de formato utiliza la misma sintaxis de formato de fecha que el NumberFormat anterior. El siguiente código muestra cómo formatear una representación de cadena de texto de una fecha como formato de fecha media:

Sub msgboxFechaMedia()
    MsgBox Format("09 Octubre 2021", "Medium Date")
End Sub

El resultado es:

msgbox formato fecha media resultado

El siguiente código muestra cómo formatear una representación de cadena de texto de una fecha como un formato definido por el usuario:

Sub msgboxFechaMediaCadenaDefinida()
    MsgBox Format("09 Octubre 2021", "dddd: dd/mm/yy")
End Sub

msgbox Fecha Media Cadena Definida

Constructor de formatos personalizados de VBA

Nuestro complemento VBA: AutoMacro contiene un Constructor de Formato Personalizado para el Editor VBA. Esto le permite establecer formatos personalizados y previsualizar inmediatamente la salida para su valor deseado: vba custom number format El complemento VBA contiene otros numerosos «generadores de código», una extensa biblioteca de códigos y un surtido de otras herramientas de codificación. Es el complemento definitivo para cualquier persona que se tome en serio la programación VBA

VBA Formato de fecha en Access

La función VBA Format Date funciona exactamente igual en Access VBA que en Excel VBA.

Function ObtenerFiltrodeDatos() As String
'Crear una cadena para obtener información de 2 campos de fecha en un formulario
   Dim cadenaFechaCampo As String
   If IsNull(Me.txtSDate) = False Then
      If IsNull(Me.txtEDate) = True Then Me.txtEDate = Me.txtSDate
      If cadenaFechaCampo = "" Then
        GetDateFilter = cadenaFechaCampo & " Between #" & Format(Me.txtSDate, "mm/dd/yyyy") & "# And # " & Format(Me.txtEDate, "mm/dd/yyyy") & "#"
      End If
   End If
End Function
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples