26

所以函数=Now()....有没有办法我可以使用它并且只获取日期,而不是时间?

还是这个想法只是一个功能?

4

6 回答 6

34

有一个日期功能

于 2010-06-24T01:13:16.130 回答
12

VBA 中的日期只是浮点数,其中整数部分表示日期,小数部分表示时间。因此,除了使用Datetlayton 所说的函数(获取当前日期)之外,您还可以将日期值转换为整数以从任意日期获取日期部分Int(myDateValue)

于 2010-06-24T01:22:45.670 回答
11
DateValue(CStr(Now()))

这是我找到的最好的。如果您已经将日期作为字符串,您可以这样做:

DateValue("12/04/2012 04:56:15")

或者

DateValue(*DateStringHere*)

希望这可以帮助某人...

于 2012-08-08T11:16:13.903 回答
5

我宁愿制作一个不适用于字符串的函数:

'---------------------------------------------------------------------------------------
' 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
于 2013-08-15T08:03:23.967 回答
3

您还可以使用 Format$(Now(), "Short Date") 或您想要的任何日期格式。请注意,此函数将日期作为字符串返回,因此使用 Date() 是一种更好的方法。

于 2010-06-24T01:20:07.033 回答
1

将此函数粘贴到您的模块中并像公式一样使用它

Public Function format_date(t As String)
    format_date = Format(t, "YYYY-MM-DD")
End Function

例如在单元格 A1 中应用此公式

=format_date(now())

它将以 YYYY-MM-DD 格式返回。根据需要更改任何格式(年月日)。

于 2016-04-05T08:27:13.797 回答