VBA Formato de Fecha
In this Article
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.
- La propiedad NumberFormat de Celdas / Rangos – Para formatear las fechas almacenadas en las celdas
- 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.
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.
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:
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:
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:
Sub msgboxFechaLarga()
MsgBox Format("1/1/2010", "dddd, dd mmmm, yyyy")
End Sub
El resultado es:
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:
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
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: 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