vBAのDate
関数の基になる整数を取得する方法はありますか? Excelに保存されている整数を参照して、メモリ内の日付を日数で表します(時間が含まれる場合、浮動小数点数になる可能性があります)。ただし、整数部分にのみ興味があります。そのための別の機能はありますか?
たとえば、today()の場合、40877を取得できます。
君たちありがとう ;)
日付はVB(A)の整数ではなく、倍精度です。
CDbl()
に渡すことで、Dateの値を取得できます。
_CDbl(Now()) ' 40877.8052662037
_
整数部分を取得するには、使用します
_Int(CDbl(Now())) ' 40877
_
返すだろう 長いです小数点以下を含まないdouble(つまり、Floor()
が他の言語で行うこと)。
CLng()
またはRound()
を使用すると、丸めが行われ、正午12:00以降に呼び出されたときに「将来の日」が返されるため、実行しないでください。
CLng(Date)
を使用してください。
現在の日付の値は> 32767であるため、Long
ではなくInteger
を使用する必要があることに注意してください。
MDateのような日付文字列とtoDayのようなNow()に以下のコード例を使用できます。また、エージングのように両方の日付の差を計算することもできます。
Public Sub test(mdate As String)
Dim toDay As String
mdate = Round(CDbl(CDate(mdate)), 0)
toDay = Round(CDbl(Now()), 0)
Dim Aging as String
Aging = toDay - mdate
MsgBox ("So aging is -" & Aging & vbCr & "from the date - " & _
Format(mdate, "dd-mm-yyyy")) & " to " & Format(toDay, "dd-mm-yyyy"))
End Sub
注意:日付文字列を有効な日付に変換するためにCDate
を使用しました
私はOffice 2007でこれを使用しています:)
Public SUB test()
Dim mdate As Date
mdate = now()
MsgBox (Round(CDbl(mdate), 0))
End SUB