首页 文章

Excel公式 - 计算2个时间戳之间的天数,小时数,分钟数和秒数

提问于
浏览
1

我有一个vba脚本,当用户运行时,在单元格A8中留下时间戳,如下所示:

ActiveSheet.Range("A8").Value = Format(Now(), "dd/mm/YYYY hh:mm:ss")

这将在单元格A8中显示以下内容(格式为日期:

10/12/2016  9:15:10 AM

接下来,我希望能够确定自上次用户运行宏/ vba代码以来的天数,小时数,分钟数和秒数 .

我也在单元格B8中使用= NOW()捕获当前日期/时间 .

单元格B8也被格式化为日期并显示如下:

12/18/16 12:45

我的公式应该在单元格B8中将A8中的时间戳与当前时间和日期进行比较 .

=INT(A8-B8)&" days "&TEXT(A8-B8,"h"" hrs ""m"" mins """)

我注意到这里的日期格式不一致,我不知道这是否重要?

出于某种原因,我没有得到所需的结果,我的公式出现了这个错误:

超值!

请有人能告诉我哪里出错了吗?

另外,如果可能的话,我不想像这样一次显示天,小时,分钟和秒:

0 days, 0 hours, 0 minutes, 0 seconds

我真正想要的是如果时间戳小于60秒,显示如下:

55 seconds ago

Then something like:

20 minutes ago

then:

1 hour ago

then :

2 days ago

谢谢

1 回答

  • 2

    首先,它应该是 B8-A8 ,而不是相反,因为B8应该大于A8 . 此更改应使您的初始公式起作用 .

    第二,你想要的公式:

    =IF(B8-A8>=1,INT(B8-A8)&" days ago",IF(HOUR(B8-A8)>=1,HOUR(B8-A8)&" hours ago",IF(MINUTE(B8-A8)>=1,MINUTE(B8-A8)&" minutes ago",IF(SECOND(B8-A8)>=1,SECOND(B8-A8)&" seconds ago", " just now"))))
    

    p.s . :根据@ YowE3K的评论,要使其工作,您的单元格 A8B8 应设置为 Date 类型,否则您应该在公式中使用正确的格式对它们进行格式化 . 第一个选项应该更容易 .

相关问题