我想在Excel中设置一个公式,将从4/29/2013 16:00
减去天数,但始终保持在6:00:00 PM
时间。我发现这个公式:如何Excel日期/时间扣除
=DATE(YEAR(B2),MONTH(B2),DAY(B2)-3)
减去天,但它返回4/26/2013 00:00
。我希望时间(00:00
)始终为18:00
。有人可以告诉我我可以如何实现这一目标吗?
我想在Excel中设置一个公式,将从4/29/2013 16:00
减去天数,但始终保持在6:00:00 PM
时间。我发现这个公式:如何Excel日期/时间扣除
=DATE(YEAR(B2),MONTH(B2),DAY(B2)-3)
减去天,但它返回4/26/2013 00:00
。我希望时间(00:00
)始终为18:00
。有人可以告诉我我可以如何实现这一目标吗?
最简单的方法是在公式中添加TimeValue(“18:00”)或0.75(18/24)。减去3天也可能是算术运算。
=TRUNC(NOW())-3 + 0.75
在VBA中,你可以使用DateAdd
功能:
Sub DateChange()
Dim originalDate as Date
Dim newDate as Date
originalDate = "4/29/2013 16:00"
newDate = DateAdd("d", -3, originalDate)
MsgBox newDate,vbInformation
End Sub
或者,你可以写一个自定义函数逼近DateAdd函数,并使其可在纸张上:
Public Function wsDateAdd(interval As String, number As Double, myDate As Date)
'function to make 'DateAdd' VBA function available on worksheet.'
Dim newDate As Date
Select Case LCase(interval)
Case "y", "m", "d", "h", "n", "s" 'years-months-days-hours-minutes-seconds'
newDate = DateAdd(interval, number, myDate)
End Select
wsDateAdd = newDate
End Function
之前:
后:
然后应用适当的数字格式的单元格,瞧:
你想要的时候始终是'18:00'或无论什么时候是日期表达的一部分,例如'16:00' ...? –