0

我正在尝试在 Excel 中设置一个公式,该公式将从 中减去天数4/29/2013 16:00,但始终将时间保持在6:00:00 PM. 我找到了这个公式:

=DATE(YEAR(B2),MONTH(B2),DAY(B2)-3) 

减去天数,但它返回4/26/2013 00:00。我希望时间 ( 00:00) 永远存在18:00。有人可以告诉我如何做到这一点吗?

4

2 回答 2

1

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

=TRUNC(NOW())-3 + 0.75
于 2013-04-02T15:28:53.927 回答
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

前:

公式...

后:

未格式化的值

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

格式化日期

于 2013-04-02T16:02:29.990 回答