2013-04-02 116 views
0

我想在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。有人可以告诉我我可以如何实现这一目标吗?

+0

你想要的时候始终是'18:00'或无论什么时候是日期表达的一部分,例如'16:00' ...? –

回答

1

最简单的方法是在公式中添加TimeValue(“18:00”)或0.75(18/24)。减去3天也可能是算术运算。

=TRUNC(NOW())-3 + 0.75 
0

在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 

之前:

Formula...

后:

unformatted value

然后应用适当的数字格式的单元格,瞧:

formatted date