web-dev-qa-db-ja.com

タイムトリム付きNow()関数

関数=Now()....これを使用して、時刻ではなく日付のみを取得する方法はありますか?

または、このアイデアのための機能はありますか?

23
Justin

日付関数 があります。

25
tlayton

VBAの日付は単なる浮動小数点数であり、整数部は日付を表し、小数部は時刻を表します。したがって、tlaytonが言うようにDate関数を使用することに加えて(current日付を取得するため)、日付値を整数にキャストして任意の日付から日付部分を取得することもできます: Int(myDateValue)

10
Dean Harding
DateValue(CStr(Now()))

それは私が見つけた最高のものです。すでに文字列として日付を持っている場合、あなたはちょうどすることができます:

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

または

DateValue(*DateStringHere*)

これが誰かを助けることを願っています...

9
Nick

私は文字列で動作しない関数を作成したいと思います:

'---------------------------------------------------------------------------------------
' 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
Berend Nieuwhof

Format $(Now()、 "Short Date")または任意の日付形式を使用することもできます。この関数は文字列としてDateを返すので、Date()を使用する方が良いことに注意してください。

3
Rob Gray

この関数をモジュールに貼り付け、式のように使用します

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

たとえば、セルA1にこの式を適用します

=format_date(now())

yYYY-MM-DD形式で返されます。必要に応じて形式(年月日)を変更します。