sumar - vba excel operaciones con fechas
Ahora() funciona con tiempo de recorte (6)
Hay una función de fecha .
Entonces la función =Now()
.... ¿hay una manera en que pueda usar esto y solo obtener la fecha, no la hora?
¿O hay solo una función para esta idea?
Las fechas en VBA son solo números de punto flotante, donde la parte entera representa la fecha y la parte de la fracción representa la hora. Entonces, además de usar la función Date
como dice tlayton (para obtener la fecha actual ), también puede convertir un valor de fecha en un entero para obtener la parte de la fecha de una fecha arbitraria: Int(myDateValue)
.
Pega esta función en tu módulo y utilízala como fórmula
Public Function format_date(t As String)
format_date = Format(t, "YYYY-MM-DD")
End Function
por ejemplo en la celda A1 aplicar esta fórmula
=format_date(now())
volverá en formato YYYY-MM-DD. Cambie cualquier formato (año, mes, fecha) como desee.
Preferiría hacer una función que no funcione con cadenas:
''---------------------------------------------------------------------------------------
'' Procedure : RemoveTimeFromDate
'' Author : berend.nieuwhof
'' Date : 15-8-2013
'' Purpose : removes the time part of a String and returns the date as a date
''---------------------------------------------------------------------------------------
''
Public Function RemoveTimeFromDate(DateTime As Date) As Date
Dim dblNumber As Double
RemoveTimeFromDate = CDate(Floor(CDbl(DateTime)))
End Function
Private Function Floor(ByVal x As Double, Optional ByVal Factor As Double = 1) As Double
Floor = Int(x / Factor) * Factor
End Function
También puede usar Formato $ (ahora (), "Fecha corta") o cualquier formato de fecha que desee. Tenga en cuenta que esta función devolverá la fecha como una cadena, por lo que usar Date () es un mejor enfoque.
DateValue(CStr(Now()))
Eso es lo mejor que he encontrado. Si ya tienes la fecha como una cadena, puedes hacerlo:
DateValue("12/04/2012 04:56:15")
o
DateValue(*DateStringHere*)
Espero que esto ayude a alguien...