【发布时间】:2021-06-27 03:46:09
【问题描述】:
目标:
实现一个倒计时计时器,可以在计时器结束时添加时间扩展。
对布局的洞察:
- 事件只是与该事件的特定时间相关的事件的下拉列表。 (为此,我们假设它是 50 分钟。)
- Round 1 Start是开始时间,由用户输入。
-
Round 1 End是使用excel函数的结束时间。
=IF(ISBLANK(C2),"",IFERROR(C2+VLOOKUP($A$2,Lookups!$A$2:$B$9,2), "Invalid")) -
Remaining Time 是倒计时计时器,带有 excel VBA 以不断刷新它
=IFERROR(IF(NOW()-TODAY()-D2-TIME(0,F2,0)>0,"TIME IN ROUND",IFERROR(ABS((NOW()-TODAY())-D2)+IFERROR(TIME(0,F2,0),0),"")),"") - 延长时间是以分钟为单位的延长时间。
什么有效:
如果没有时间扩展,它会做它应该做的事情,当计时器到达 0:00:00 时,它会显示“TIME IN ROUND”消息。
什么不起作用: 添加时间扩展后,它永远不会达到 0:00:00,而是开始计数,如 here 所示。相反,它会在 Time Extension 乘以 2 后显示“TIME IN ROUND”消息。即使在弄乱了公式的时间扩展部分之后,这对我来说也从未正常工作过。
代码分解:=IF(ISBLANK(C2),"",IFERROR(C2+VLOOKUP($A$2,Lookups!$A$2:$B$9,2), "Invalid"))
这将显示空白,直到开始时间单元格 (C2) 被填充。一旦开始时间被填满,就会引用事件来给出持续时间(50 分钟)。
=IFERROR(IF(NOW()-TODAY()-D2-TIME(0,F2,0)>0,"TIME IN ROUND",IFERROR(ABS((NOW()-TODAY())-D2)+IFERROR(TIME(0,F2,0),0),"")),"")
第一个 if 语句 NOW()-TODAY()-D2-TIME(0,F2,0)>0 这只是检查倒数计时器是否已到结束时间。
第二个 if 语句ABS((NOW()-TODAY())-D2)+IFERROR(TIME(0,F2,0),0) 是验证是否有时间扩展,将时间扩展值添加到结束时间。
【问题讨论】:
-
如果你想让任何人帮助你,你必须帮助我们了解你在做什么。 (1)用英语高层次地描述你想要完成的事情。 (2)解释
D2和F2是什么。 (你说“唯一需要的参数是开始时间”,那么为什么要指这两个其他单元格?) (3)什么是“时间延长”? (4) 在技术层面上描述公式应该如何做它应该做的事情。 (5)您使用IFERROR3 次! 您预计会出现什么错误? …(续) -
(续)... (6)您是说这有时有效,还是以前有效?如果是这样,请明确地说出来。 (7)用英语(和在技术层面)解释你在做什么。 (“add time extensions”是什么意思?) (8)用英语描述正在发生的事情。如果绝对有必要补充您的描述,请添加实际说明某些内容的插图。 (您当前的图片没有帮助。 第一个是空白的! 应该有一些动画那里,这对我来说是太快还是太慢? …(续)
-
(续)... 第二张图片没有帮助,因为您没有显示哪个单元格是
D2,哪个单元格是F2,而且我不知道预期的内容 /想要的结果是。) (9)您是否尝试过使用“评估公式”进行调试? … … … … … … … … … … … … … … … … … … … … … … … 请勿回复; edit你的问题,让它更清晰、更完整。 -
@Scott 我收到了很多这样的问题,并澄清了很多细节。希望对您有所帮助。
-
是的,这个问题现在很清楚了;谢谢你。我已经发布了答案。
标签: excel countdowntimer