【发布时间】:2017-05-03 22:13:26
【问题描述】:
我有一个 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
我的公式应该将 A8 中的时间戳与单元格 B8 中的当前时间和日期进行比较。
=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
谢谢
【问题讨论】:
-
您不能从 A8 中减去 B8。它们是文本值。
-
@YowE3K 谢谢,但那是 vba。我试图把它变成一个公式,以便单元格总是在计数。使用 vba 解决方案,不会像公式自动更新单元格一样