Este tutorial demostrará cómo formatear fechas usando VBA.
Formatear fechas en VBA
Hay dos métodos para formatear fechas usando VBA.
- La propiedad NumberFormat de Celdas / Rangos – Para formatear fechas almacenadas en celdas
- La función de formato VBA-Para formatear fechas en VBA (ej. variables)
NumberFormat-Fechas
El formato numérico predeterminado de una celda en Excel es General. Puede mostrar valores como números, texto, fechas, porcentajes o monedas cambiando el formato de los números. La propiedad NumberFormat se puede usar 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 Formato de número de fecha corta muestra la fecha en un formato numérico corto.
El siguiente código establecerá el .Propiedad NumberFormat de la celda A1 a la fecha corta:
1
|
Rango («A1»).NumberFormat = «mm / dd/aaaa»
|
Fecha larga
El formato de número de fecha larga muestra la fecha en un formato escrito más largo. El siguiente código establecerá el .Propiedad NumberFormat de la celda A1 a fecha larga:
1
|
Rango («A1»).NumberFormat = «dddd, mmmm dd, aaaa»
|
Fechas personalizadas
Para ver los códigos de formato de números personalizados que puede usar en VBA para formatear fechas, vaya a Inicio>Número y haga clic en el Lanzador del cuadro de diálogo. Seleccione la pestaña Número y elija Personalizado.
Puede seleccionar los formatos integrados personalizados para su fecha o crear sus propios formatos de fecha definidos por el usuario. El siguiente código establecerá el .Propiedad NumberFormat de la celda A1 a un formato de fecha personalizado incorporado:
1
|
Range(«A1»).NumberFormat = «mmm-aa»
|
El resultado es:
El código siguiente se establece la .Propiedad NumberFormat de la celda A1, a un formato de fecha personalizado definido por el usuario:
1
|
Rango («A1»).NumberFormat = «dddd-dd-mmm-aa»
|
El resultado es:
Al revisar los ejemplos prediseñados de Excel, puede aprender cómo deben introducirse los formatos numéricos. Para obtener más información, lea la documentación de Microsoft sobre formatos de números para fechas.
Función de formato VBA
Como se mencionó anteriormente, el método NumberFormat es apropiado para establecer el formato número de fechas almacenadas en celdas de Excel. En VBA, puede usar la Función Formato para convertir fechas en cadenas con cierto formato de fecha.
Usaría la siguiente sintaxis para formatear fechas:
Format (String_Representation, NumberFormatCode) donde:
String_Representation – la cadena de texto que representa la fecha.
NumberFormatCode-el código de formato numérico que especifica la forma en que se debe mostrar 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:
1
|
Formato MsgBox («1/1/2010», «dddd, mmmm dd, aaaa»)
|
El resultado es:
Observe que la función de formato utiliza la misma sintaxis de formato de fecha que el formato de número anterior.
El siguiente código muestra cómo formatear una representación de cadena de texto de una fecha como formato de fecha medio:
1
|
Formato MsgBox («09 de octubre de 2012», «Medium Date»)
|
El resultado es:
El siguiente código muestra cómo formatear una representación de cadena de texto de una fecha como formato definido por el usuario:
1
|
Formato MsgBox («09 de octubre de 2012″, » dddd: dd / mm / aa»)
|
Generador de formatos personalizados de VBA
Nuestro complemento de VBA: AutoMacro contiene un Generador de formatos personalizado para el Editor de VBA. Esto le permite configurar formatos personalizados e inmediatamente obtener una vista previa de la salida para el valor deseado:
El complemento de VBA contiene muchos otros «generadores de código», una extensa biblioteca de código y una variedad de otras herramientas de codificación. ¡Es el complemento definitivo para cualquier persona que se tome en serio la programación de VBA!
Fecha de formato VBA en Access
La función de fecha de formato VBA funciona exactamente igual en Access VBA que en Excel VBA.
1
2
3
4
5
6
7
8
9
10
|
Función GetDateFilter() as String
‘crear una cadena de obtener información de los 2 campos de fecha en un formulario de Access
Dim strDateField Como String
If IsNull(Me.txtSDate) = False Entonces
Si IsNull (Me.txtEDate) = Verdadero Entonces Yo.txtEDate = Yo.txtSDate
Si strDateField2 = «»Entonces
GetDateFilter = strDateField &» Entre el formato #» & (Me.txtSDate,» mm/dd/aaaa») & «# Y # » & Formato (Me.txtEDate, «mm/dd/aaaa») & «#»
End If
End If
End Function
|