所以函数=Now()
....是否有一种方法可以使用它并且只获取日期,而不是时间?
还是只有这个想法的功能?
答案 0 :(得分:23)
答案 1 :(得分:10)
VBA中的日期只是浮点数,其中整数部分代表日期,分数部分代表时间。因此,除了使用Date
函数作为tlayton(获取当前日期)之外,您还可以将日期值转换为整数以从任意日期获取日期部分: Int(myDateValue)
。
答案 2 :(得分:8)
DateValue(CStr(Now()))
这是我发现的最好的。如果您已将日期作为字符串,则可以执行以下操作:
DateValue("12/04/2012 04:56:15")
或
DateValue(*DateStringHere*)
希望这有助于某人...
答案 3 :(得分:4)
我更愿意制作一个不能用于字符串的函数:
'---------------------------------------------------------------------------------------
' 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
答案 4 :(得分:3)
您还可以使用Format $(Now(),“Short Date”)或您想要的任何日期格式。请注意,此函数会将Date作为字符串返回,因此使用Date()是一种更好的方法。
答案 5 :(得分:0)
将此功能粘贴到您的模块中,并将其用作公式
Public Function format_date(t As String)
format_date = Format(t, "YYYY-MM-DD")
End Function
例如在单元格A1中应用此公式
=format_date(now())
它将以YYYY-MM-DD格式返回。根据您的意愿更改任何格式(年月日期)。