计算截止日期和距离设定截止日期还剩多少天

Posted

技术标签:

【中文标题】计算截止日期和距离设定截止日期还剩多少天【英文标题】:Counting due date and days left until a set deadline 【发布时间】:2018-02-01 08:41:41 【问题描述】:

我正在尝试制作一个宏,该宏将用户输入的截止日期输入单元格E2,然后检查与今天的日期相比,截止日期是否已过。此外,我试图在单元格F2 中显示计数,显示距离截止日期还有多少天,或者超过截止日期多少天。我有以下代码,但它没有正确计算天数,我不确定截止日期检查是否正常:

Sub Test()
Dim DDate As Date
Dim Ndate As String
Dim DDays As String
Dim NDays As String
Dim LDays As String

Ndate = Format(Date, "yyyymmdd") 'current date
DDate = Range("E2") 'due date, as entered in the cell by user, 20180101 in this example)

If DDate < Ndate Then Range("G1") = "ERROR" 'calculate whether the due date (DDate) has passed, and do something if yes)

NDays = Format(Date, "dd")
DDays = Range("E2").Value.Format(Date, "dd")

LDays = NDays - DDays 'count how many days are left until the due date (or how many days it's over the due date)
Range("F2") = LDays 'put the number of days in cell F2
End Sub

【问题讨论】:

为什么需要 VBA? Excel 的本机电子表格功能可以完成这项工作。在 F2 中,输入 =E2-TODAY()。 【参考方案1】:

我认为您不需要 VBA。请记住,Excel 将日期存储为自 00/01/1900 以来过期的天数。

因此,例如,如果您想知道E2 中的日期是在A1 中的截止日期之前还是之后,您可以简单地直接比较=IF(E2&lt;=A1,"Deadline not passed","Deadline passed")

截止日期之前或之后的天数只是差值:E2-A1

编辑:我只是注意到您想与今天的日期进行比较。正如 Chris 的评论所暗示的,您可以使用 =TODAY() 来获取此信息。

【讨论】:

是的,我对VLOOKUP以外的公式不太熟悉,所以我尝试在vba中解决所有问题。你们建议的确实是更好的方法。【参考方案2】:

如果你想走VBA路线,我已经修改了代码:

Sub Test()
Dim DDate As Date

' Change the date value 20180101 entered in to excel date format, as yyyy/mm/dd
 Range("E2").TextToColumns Destination:=Range("E2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 5), TrailingMinusNumbers:=True

DDate = Range("E2").Value

If DDate < Date Then 'calculate whether the due date (DDate) has passed, and do something if yes)

Range("G1") = "ERROR"

Else

Range("F2").Value = DDate - Date

End If

End Sub

【讨论】:

以上是关于计算截止日期和距离设定截止日期还剩多少天的主要内容,如果未能解决你的问题,请参考以下文章

场景应用:Java 写一个根据生日日期计算距离生日还有多少天的工具类?

Power BI根据一定范围内的度量获取记录数

距离算法之美赠书活动截止还有最后2天

赛码 #1649 日期倒计时

Python如何写出计算过了多少天的程序?

如何在php中计算月份截止日期[关闭]