所以函数=Now()
....有没有办法我可以使用它并且只获取日期,而不是时间?
还是这个想法只是一个功能?
有一个日期功能。
VBA 中的日期只是浮点数,其中整数部分表示日期,小数部分表示时间。因此,除了使用Date
tlayton 所说的函数(获取当前日期)之外,您还可以将日期值转换为整数以从任意日期获取日期部分Int(myDateValue)
:
DateValue(CStr(Now()))
这是我找到的最好的。如果您已经将日期作为字符串,您可以这样做:
DateValue("12/04/2012 04:56:15")
或者
DateValue(*DateStringHere*)
希望这可以帮助某人...
我宁愿制作一个不适用于字符串的函数:
'---------------------------------------------------------------------------------------
' 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
您还可以使用 Format$(Now(), "Short Date") 或您想要的任何日期格式。请注意,此函数将日期作为字符串返回,因此使用 Date() 是一种更好的方法。
将此函数粘贴到您的模块中并像公式一样使用它
Public Function format_date(t As String)
format_date = Format(t, "YYYY-MM-DD")
End Function
例如在单元格 A1 中应用此公式
=format_date(now())
它将以 YYYY-MM-DD 格式返回。根据需要更改任何格式(年月日)。